2011-07-27 19 views
10

Herhangi bir ek parametre olmaksızın URL'den sadece /controller/action almama izin verecek bir Controller özelliği var mı?CakePHP - Hızlı kontrol/kontrol/aksiyon yolu?

Şu anda $this->name . '/' . $this->action ürününe katılmak zorundayım.

+0

üretmek

$this->Url->build([ "controller" => "controller", "action" => "action", "parameter" ]); 

:

CakePHP'nin 3.x için
$this->Html->url(array( "controller" => "controller", "action" => "action", "parameter" )); 

, UrlHelper iyi bir seçimdir? – deceze

+0

Giriş sayfama yönlendirmek için – BadHorsie

cevap

16

/users/login dizesini oluşturmak istemiyorsanız, kullanıcı denetleyicinizin (örneğin) oturum açma işlemine karşılık gelen URL'yi istediğiniz URL'ye yönlendirin. Bu zorunlu olarak /users/login ile aynı değildir ve bunu kodlamamalısınız!

, ters yönlendirme kullanmak bir denetçi eylemine yol açacak bir URL almak için:

Router::url(array('controller' => 'users', 'action' => 'login')); 
//or 
Router::url(array('controller' => $this->name, 'action' => $this->action)); 

Evet, bu daha da uzun, ama bunu yapmak için doğru yolu. Bir gün, giriş URL'sinin ya da yerine /members/entrance olmasını istediğinize karar verirseniz, yalnızca tüm sabit kodlanmış bağlantılarınızı yeniden yazmadan routes.php içinde uygun bir rota tanımlamanız gerekir.

4
$this->here 

Görünüm ve denetleyicide bulunur. Küçük not: 2.0'da kaldırılıyor.

+0

yönlendirmesi olarak kullanıyorum. Burada "$" herhangi bir ek URL parametresi içeriyor. – BadHorsie

+0

@BadHorsie Bir giriş yönlendirmesi için kullanmak istediğinizde, * oldukça * alakalı olduğunu söyleyebilirim. Sadece kontrolcüyü ve eylemi istiyorsanız, sadece kontrol ünitesine katılın ve sizin yaptığınız gibi harekete geçin! – Dunhamzzz

+0

Hayır, ekstra parametreleri istemiyorum. Teşekkürler, ben sadece kontrol/eylem katılmadan devam edeceğiz. – BadHorsie

2

Ayrıca 2.x içinde HtmlHelper::url yöntemini kullanmak da mümkündür. Ne o ihtiyacın var Her iki örnek

/controller/action/parameter