Как Zend View Render разрешить путь для просмотра скрипта - PullRequest
2 голосов
/ 12 июля 2011

Как такое действие, как эта "customSearchAction ()", сопоставляется с именем файла скрипта представления.

Ни одно из этих имен файлов не работает "customsearch.xml.phtml", "customSearch.xml.phtml","custom-search.xml.phtml".

Обратите внимание, что я использую переключение контекста просмотр помощника для xml, json.Кроме того, модуль и действие решаются правильно.Когда я изменяю имя действия на «customsearchAction ()» и называю переименованный файл сценария на «customsearch.xml.phtml», тогда оно работает.

Так как же разрешается имя файла сценария просмотра в приведенном выше примере?дело?в Zend Framework

1 Ответ

3 голосов
/ 13 июля 2011

Из документации :

Примечание. Соглашения об именах: разделители слов в именах контроллеров и действий Если имя вашего контроллера или действия состоит из нескольких слов, диспетчер требует, чтобы они разделялись в URL определенными символами пути и разделителями слов. ViewRenderer заменяет любой разделитель пути, найденный в имени контроллера, на фактический разделитель пути ('/'), а любой разделитель слов, найденный с дефисом ('-') при создании путей. Таким образом, вызов действия /foo.bar/baz.bat отправил бы в FooBarController :: bazBatAction () в FooBarController.php, который отобразил бы foo-bar / baz- bat.phtml; вызов действия / bar_baz / baz-bat будет отправлен в Bar_BazController :: bazBatAction () в Bar / BazController.php (обратите внимание на разделение пути) и отобразит bar / baz / БАЗ-bat.phtml . Обратите внимание, что во втором примере модуль по-прежнему является модулем по умолчанию, но из-за существования разделителя пути контроллер получает имя Bar_BazController в Bar / BazController.php. ViewRenderer имитирует иерархию каталогов контроллера.

Итак, отсюда custom-search.phtml - правильное имя. Теперь вы, возможно, ошибаетесь с каталогом, в котором храните его, как называется контроллер (и модуль)? Проверьте, хорошо ли вы просматриваете скрипт для чтения apache.

Редактировать

В случае использования ContextSwitch:

  • Инициализация: $contextSwitch->addActionContext('custom-search', 'xml');
  • скрипт просмотра custom-search.xml.phtml

Только что протестировал его на ZF 1.6 (старый, но все еще должен быть действительным). Поэтому, возможно, ваша инициализация неверна (используется 'customSearch' вместо 'custom-search' ?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...