2012-01-22 12 views
1

私はこのようなカスタムルートをmysite.com/username/controller/action/paramsのように作成しようとしています。基本的に、ユーザーがドメインの後のURLにユーザー名を表示するように認証された後。CakePHPのURLルート設定のユーザ名

私は本の中の例を試しましたが、運がありませんでした。

これは私が試したものですが、役に立たなかったのです: Router :: connect( '/:username /:controller /:action'、array()); Router :: connect( '/:controller /:action'、array());

あなたは私を助けることができますか?事前に

おかげで、

デニス

+0

こんにちは..私は同じ問題を抱えています。あなたはこの問題を解決しましたか?私はあなたの助けが私の問題を解決する必要があります.. –

+0

こんにちは、困惑の少年。これを決して解決せず、ただ諦め、Symfonyを使い始めました。 – DenisR

答えて

2

ケーキは自動的にあなたのルートの:usernameパラメータで何を意味するかわかりません。それ以上の設定を必要としない3つのデフォルトのパラメータがありますが、それらは以下のとおりです。

  1. :controller
  2. :action
  3. :plugin

は、他のすべてのパラメータが一致する正規表現で指定する必要があり、さらにあなたをpassという配列を指定して、このページのコントローラのアクションにパラメータを渡すようにCakeに指示する必要があります。あなたのケースでは、ルートは、おそらく次のようになります。

Router::connect(
    '/:username/:controller/:action', 
    array(), // Since you already have the controller and action in your URL there is no need for further directions here 
    array(
     'pass' => array('username'), // If you want to pass the username to your action 
     'username' => '[a-zA-Z0-9]+' // What regex the username should match 
    ), 
); 

は、ルーティングについての本のページを参照して、具体的にthis paragraphさらに参照のために。

+0

こんにちはoldskool、ありがとうございます。私はあなたの事例を試して、何度か本を読んでいましたが、まだ運がありません。この経路はcakePHPでは見つかりません。たとえば、私のレイアウトでは、requestActionを使用してメニューカテゴリ(categories/loadCategories)を取得する要素があります。 URLにユーザー名を追加すると、ケーキは欠落しているコントローラーをスローし、 'loadCategories'が見つからないコントローラーを指します。これに固有のものなら、CakePHP 2.0を使用しています。ありがとう、デニス – DenisR

関連する問題