0

したがって、redmineには私が観察した非常に独特なURLマッピングスタイルがあります:

http://demo.redmine.org/projects/<project-name>/controller/action

サンプル:

http://demo.redmine.org/projects/produto/activity
http://demo.redmine.org/projects/produto/issues/new
http://demo.redmine.org/projects/produto/issues/gantt
http://demo.redmine.org/projects/produto/files

プロジェクトが変更されると、URLも変更されます。

codeigniterでこれを行うにはどうすればよいですか?私はそれがroutes.phpでできると思っていますが、今のところ私はどこにも行くことができません。

ヘルプを探しています。ありがとう。

4

3 に答える 3

3

「application/controllers/projects.php」コントローラー内で次の関数を使用します。

public function _remap($method)
{
    if ($method == 'project-name')
    {
        //display project1
    }
    elseif($method == 'project-name2')
    {
        //display project2
    }
}

データベースからメソッドを抽出することで、さまざまなメソッドに対して同じことができます

ここを見てください: http://codeigniter.com/user_guide/general/controllers.html#remapping

application/config/routes.php でカスタムルートを使用してコントローラーをルーティングすることもできます

$route['example'] = "controller/function";
$route['example2/(:any)'] = "controller/function";
于 2012-04-20T22:26:29.620 に答える
2

application / config/routes.phpのroutesファイルを使用します。次のようなものを使用します。

// the $1 maps to :any
$route['projects/produto/:any'] = "$1";

// the $1 maps to the first any, $2 maps to the second :any
$route['projects/produto/:any/:any'] = "$1/$2";

クリーンなURLを処理している場合は、mod_rewriteを有効にする必要があります。それ以外の場合は、index.php / controller/actionを期待してください。そこで自分でテストすることはできませんが、以下を参照してください。

ルートを追加したら(構成内で$ route []と呼ばれる必要があります)、ページを更新してURLに移動してみてください。

http://codeigniter.com/user_guide/general/routing.html

于 2012-04-20T22:14:53.197 に答える
0

これをroutes.phpに追加します(ところで:ルートを機能させるには、URL書き換えを有効にする必要があります。つまり、を使用します.htaccess

$route['projects/(:any)/(:any)/(:any)'] = "$2/$3/$1";

たとえば/projects/produto/issues/new、クラスの問題で新しい関数を呼び出し、パラメータ「produto」を渡します

http://codeigniter.com/user_guide/general/routing.htmlも確認してください

于 2012-04-20T22:14:06.250 に答える