Нижнее подчёркивание в имене контроллера

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
nxn
Сообщения: 8
Зарегистрирован: 2010.11.02, 13:39

Нижнее подчёркивание в имене контроллера

Сообщение nxn »

Собственно, создаю контроллер BookProcessingController (имя файла такое же + .php), и по урлу /book_processing/ выдёатся ошибка Unable to resolve the request "book_processing/index".
Не могу найти причину, подскажите, это я неправильно нижнее подчёркивание использую? Как его использовать правильно? Как для него называть имена классов? Не охота как-то иметь урлы типа /bookprocessing/, чёрточка нужна для приличия.

iGrog
Сообщения: 35
Зарегистрирован: 2009.12.21, 20:59
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение iGrog »

UrlManager в руки и делай урлы какими захочешь:
http://www.yiiframework.com/doc/api/1.1/CUrlManager

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение slavcodev »

по урлу о урлу /book_processing/ нужно Book_processingController
Жду Yii 3!

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение slavcodev »

либо настроить рутер UrlManager, как было подмечено выше
Жду Yii 3!

nxn
Сообщения: 8
Зарегистрирован: 2010.11.02, 13:39

Re: Нижнее подчёркивание в имене контроллера

Сообщение nxn »

mc-bear писал(а):либо настроить рутер UrlManager, как было подмечено выше
да, такой варинт сработал:
'<_c:book_processing>'=>'bookProcessing/index',

Но, насколько я понимаю, универсальное решение в роутах я прописать не смогу, на каждый контроллер для урла с подчёркиванием надо писать своё правило? Или я ошибаюсь?

rak
Сообщения: 2043
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение rak »

nxn писал(а): Но, насколько я понимаю, универсальное решение в роутах я прописать не смогу, на каждый контроллер для урла с подчёркиванием надо писать своё правило
да

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение slavcodev »

в правилах можно использовать regexp, насколько универсальнее нужно?
Жду Yii 3!

rak
Сообщения: 2043
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение rak »

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

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение slavcodev »

и учти что по урлу /bookprocessing/ контроллер BookProcessingController.php НЕ откроется. Точнее он откроется на виндоус-сервере, на самом деле при таком запросе ищется файл BookprocessingController.php
Жду Yii 3!

mitallast
Сообщения: 207
Зарегистрирован: 2010.02.21, 20:40
Откуда: Голицыно
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение mitallast »

Не стоит использовать имена Book_ProcessingController - в фреймворке есть принятые правила наименования классов, смысла их изменять не вижу никакого, только вред один.
Настроить  UrlManager будет гораздо более правильным решением - или просто изменить его поведение полиморфизмом.

rak
Сообщения: 2043
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Нижнее подчёркивание в имене контроллера

Сообщение rak »

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

Ответить