CakePHP - Html-›link - защо да използвате controller=› и action=› вместо само controller/action

Защо това:

echo $this->Html->link('Add a User', array('controller'=>'users', 'action'=>'add'));

Вместо само това:

echo $this->Html->link('Add a User', 'users/add');

person Dave    schedule 30.03.2011    source източник


Отговори (2)


Вторият пример винаги ще генерира url на „потребители/добавяне“. Първият предоставя потенциала за използване на обратно маршрутизиране за формиране на поръчков URL адрес, както е дефинирано от правилата във вашия файл routes.php.

На практика често установявам, че няма разлика между първия и втория стил. Въпреки това, ако по-късно решите да направите промени в маршрутите си, може да откриете, че правенето на нещата за първи път спестява време в дългосрочен план, така че не е нужно да се връщате и да променяте пътя за всяка връзка...

person thesunneversets    schedule 30.03.2011

За бъдещи справки... използвайте първия, тъй като вторият е спрямо местоположението. Например, ако сте в www.example.com/post, крайният URL адрес ще бъде:

за #1 www.example.com/post/users/add за #2 www.example.com/users/add

Съжалявам за лошия английски :P

person aurelioth    schedule 07.04.2015