2012-12-28 17 views
6

cakephp projesi üzerinde çalışıyorum. .htaccess dosyasını kullanarak index.php'yi URL'den kaldırdım ve şimdi URL'den görünüm adını kaldırmak istiyorum & diğer iki değişken parametresi ekleyin. Ülke & şehri seçtiğimi varsayalım, sonra bu iki parametre, URL’leri seçerken görünmelidir. CakePHP'deEylem adı cakephp'de url'den nasıl kaldırılır?

www.example.com/Controllername/viewname 

alır Ama bu görünüm olarak denetleyici ve PARAM2 olarak param1 arar bu şekilde geçerseniz benim gereksinimi bu

www.example.com/Controllername/param1/param2 

gibi olduğu gibi

Karşılıklı sorun olduğunu.

www.example.com/Controllername/ 

cevap

2

sizin APP/routes.php yılında:

// 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'))); 

ve denetleyici:

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

üreten bağlantılar:

Başlangıçta

gibi olmalıdır Sipariş konusu. 0

Sipariş sorunları. Eğer yani bu kapsamaz country ve town

notu istediğiniz bir şey paramX değiştirin: controllername/param1 - Her iki örnekte mevcut olması gerekir.

Bunu başarmanın başka yolları da vardır.

+0

sayesinde bu I çalıştığında:

Eğer yeniden yazma modülü etkinleştirmek var sonra, APP/routes.php sende önceki yanıtta @Ross tarafından belirttiği gibi yolları değiştirebilir URL al http://www.example.com/app/webroot/index.php/controllername/viewname/foo/bar Ancak URL'de görünen adı istemiyorum –

0

Öncelikle mod yeniden yazma modülünün etkinleştirildiğinden emin olmalısınız. Mod_rewrite etkinleştirildiyse .htaccess'i kullanarak url'den index.php'yi kaldırmanız gerekmemelidir. Web sunucunuzun el kitabında nasıl etkinleştirileceğini kontrol edin ve cakephp'in varsayılan .htaccess'i, yönlendirmenin geri kalanını sizin için halledebilmelidir. cevap için

// 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')));