İsteğe bağlı params ile yönlendirme cakephp

2 Cevap php

Ben benzer benim kullanıcıların denetleyicisi bir yöntemi var:

function members($type = null, $category = null) { ... }

Her iki params isteğe bağlıdır ve birlikte ya da tek başına kullanılabilir.

Aşağıdaki yol ile So.

Router::connect('/members/*', array('controller' => 'users', 'action' => 'members'));

http://example.com/users/members başarılı olur http://example.com/members.

Ne yazık ki şu işe yaramazsa

http://example.com/members/type:cat
http://example.com/members/category:dog
http://example.com/members/type:cat/category:dog

hepsi düzgün çalışacak şekilde nasıl benim yolları kurmak olabilir?

2 Cevap

Adlandırılmış parametreleri automagicaly eylemine eşleştirilir değildir. Sen arayarak onları alabilirsiniz ya

$ This-> passedArgs ['type'] veya $ this-> passedArgs ['kategori']

ya Yönlendiricideki 3 parametresini kullanarak :: connect:

Router::connect(
    '/members/*',
    array('controller' => 'users', 'action' => 'members'),
    array(
        'pass' => array('type', 'category')
    )
);

http://book.cakephp.org/view/46/Routes-Configuration

Ile deneyin

Router::connect('/members/type\:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Router::connect('/members/category\:(.*)', array('controller' => 'users', 'action' => 'members_category'));
Router::connect('/members/type\:(.*)/category:(.*)', array('controller' => 'users', 'action' => 'members_type'));

Ben bunu test vermedi unutmayın, ama kolon kaçmak gerekir düşünüyorum.