Zend Framework Router заменяет заглавные буквы на тире по умолчанию? - PullRequest
1 голос
/ 03 августа 2011

Если мы используем заглавный алфавит между именем для контроллера Zend и действием, например, внутри модуля по умолчанию, мы создаем

class MyGoodController extends Zend_Controller_Action {

public fooBarAction()
{

}

}

Чем доступ к этому действию, URL браузера выглядит как mysite.com/my-good/foo-bar

Есть ли какой-нибудь Zend-маршрутизатор по умолчанию, добавленный в zf, управляющий этим переводом? потому что я хочу использовать помощник по просмотру URL, чтобы сгенерировать правильную ссылку для меня, например, в представлении

$this->url(array('action'=>'fooBar','controller=>'myGood')); 

не выдал правильный URL, который генерирует /myGood/fooBa r вместо /my-good/foo-bar

1 Ответ

1 голос
/ 03 августа 2011

Как указано в комментарии, вам необходимо использовать:

$this->url(array('action'=>'foo-bar','controller=>'my-good'));

Помощник просмотра URL собирает ссылку на основе маршрута, установленного в вашем приложении.

Маршруты соответствуют запросам на основе URL .

Это действительно сводится к разделению интересов. Помощник использует только маршрут, и опять же маршруты работают только с тем, что есть в URL. Задача диспетчера - получить правильные имена классов на основе маршрута.

Лучше всего оставить маршрут, чтобы иметь дело только с тем, что есть в URL, потому что диспетчеры могут измениться. То, что может работать для вас при использовании стандартного диспетчера, может не подходить для других, которые используют другого диспетчера.

Чтобы выполнить то, что вы просите, вы всегда можете использовать специальный помощник вида, который выполняет преобразование за вас, но при условии, что вы никогда не меняете диспетчеров.

...