2012-12-28 15 views
6

私はcakephpプロジェクトに取り組んでいます。 .htaccessファイルを使用してURLからindex.phpを削除しましたが、今度はURL &からビュー名を削除して、別の2つの可変パラメータを追加します。国番号&を選択した場合、これらの2つのパラメータは選択時にURLに表示されます。cakephpのURLからアクション名を削除するには?

CakePHPは

www.example.com/Controllername/viewname 

を取るしかし、私はそれがビューとしてコントローラとPARAM2としてのparam1を探します。この道を渡すと、私の要件は、この

www.example.com/Controllername/param1/param2 

のようなものであるように私が直面しています問題があります。

あなた APP/routes.php
www.example.com/Controllername/ 

答えて

2

は当初のようにする必要があり

// www.example/com/Controllername 
Router::connect('/Controllername', 
    array('controller'=>'Controllername', 'action'=>'index')); 

// www.example.com/Controllername/param1/param2 
Router::connect('/Controllername/:param1/:param2', 
    array('controller'=>'Controllername', 'action'=>'index'), 
    array('pass' => array('param1', 'param2'))); 

とあなたのコントローラ:

// set to null/a value to prevent missing parameter errors 
public function index($param1=null, $param2=null) { 
    //echo $param1 . ' and ' . $param2; 
} 

のリンクを生成する場合:

array('controller'=>'Controllername', 'action'=>'index', 'param1'=>'foo', 'param2'=>'bar'); 

ご注文に関する事項あなたが欲しいもの、すなわちcountrytown

音符にparamXを変更し、これはカバーしていない:controllername/param1 - の両方が、この例では存在している必要があります。

これを達成する他の方法があります。

+0

をこのIを試みた返事に感謝、 URLを取得しました http://www.example.com/app/webroot/index.php/controllername/viewname/foo/bar しかし、私はURLにviewnameを必要としません –

0

mod-rewriteモジュールが有効になっていることを確認してください。 mod_rewriteが有効になっていれば、.htaccessを使ってurlからindex.phpを削除する必要はありませんでした。ウェブサーバーのマニュアルでそれを有効にする方法をチェックし、cakephpのデフォルトの.htaccessが残りのルーティングを処理できるようにしてください。あなたが書き換えモジュールを有効にした後APP/routes.phpのあなたで前の回答で@Rossで指摘したように

、あなたはルートを変更することができます。

// www.example/com/Controllername 
Router::connect('/Controllername', 
array('controller'=>'Controllername', 'action'=>'index')); 

// www.example.com/Controllername/param1/param2 
Router::connect('/Controllername/:param1/:param2', 
array('controller'=>'Controllername', 'action'=>'index'), 
array('pass' => array('param1', 'param2')));