Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Yii маршрутизация запросов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: вызов действия контроллера
Zuldek
Отправлено: 16 Апреля, 2013 - 09:58:20
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Yii отвечает за работу раздела портала и размешен в каталоге htsocs/catalog/new_catalog/
При запросе (и всех прочих запросах)
отрабатывает дефолтный контроллер DemoController
PHP:
скопировать код в буфер обмена
  1. return array(
  2.     'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
  3.     'name' => 'test application',
  4.     'defaultController' => 'demo',

Прочитав ман по маршрутизации запросов по этому фреймворку, прописал правила:
PHP:
скопировать код в буфер обмена
  1.         'urlManager' => array(
  2.             'urlFormat' => 'path',
  3.             'showScriptName' => false,
  4.             'rules' => array(
  5.                 '/catalog/search' => 'demo/search',
  6.                 '/catalog/profile' => 'demo/profile',
  7.                 '/catalog/filials' => 'demo/filials',
  8.                 '/catalog/geoSearch' => 'demo/geoSearch',
  9.                 '/catalog/geoCoord' => 'demo/geoCoord',
  10.                                 '<controller:\w+>/<id:\d+>'=>'<controller>/view',
  11.                                 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
  12.                                 '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
  13.                         ),
  14.                 ),

Соответственно, в контроллере demo есть метод
PHP:
скопировать код в буфер обмена
  1.     public function actionSearch()
  2.     {
  3. echo "doing search!";
  4. ...
  5. }
  6.  

Который не отрабатывает, как и остальные.
Аналогичный раздел был загружен и работает в корне другого поддомена (а не в каталоге /catalog/), там аналогичная копия раздела где отлично отрабатывают аналогичные правила, без '/catalog/' в роутах
Коллеги с опытом в Yii, прошу разъяснить в чем моя ошибка. Очевидно что-то не указал или не верно указал в конфигурации маршрутов. Заранее благодарен.

(Отредактировано автором: 16 Апреля, 2013 - 09:59:03)

 
 Top
esterio
Отправлено: 16 Апреля, 2013 - 10:44:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Zuldek пишет:
'/catalog/geoSearch' => 'demo/geoSearch',

Zuldek пишет:
public function actionSearch()

Zuldek пишет:
'search' => 'demo/search',

названия метода должно быть actionGeoSearch
 
 Top
Zuldek
Отправлено: 16 Апреля, 2013 - 11:26:53
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




esterio пишет:
Zuldek пишет:
'/catalog/geoSearch' => 'demo/geoSearch',

Zuldek пишет:
public function actionSearch()

Zuldek пишет:
'search' => 'demo/search',

названия метода должно быть actionGeoSearch

Для geoSearch ('/catalog/geoSearch' => 'demo/geoSearch') да, - actionGeoSearch
для '/catalog/search' => 'demo/search' - actionSearch, согласно ману. Я не прав?
Так или иначе они не отрабатывают по какой-то причине, при том, что контроллер вызывается. Включение дебагера для вызова трассировки обработки запросов по ману не привело к его выводу "внизу страницы" по ману Улыбка. Режим дебага отрабатывает только к примеру при ошибочной структуре массивов конфига приложения Улыбка. Интересная игрушка этот Yii. Хотя тут скорее проблема в разработчике, который что-то где-то не дочитал. Если бы на нем не была реализована интеграция с интересующим api, конечно, делал бы на старом добром Zend.

(Отредактировано автором: 16 Апреля, 2013 - 11:33:37)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB