Yii Framework Forum: Urlmanager Custom Urlrule Class - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Urlmanager Custom Urlrule Class передача параметров из URL в контроллер Rate Topic: -----

#1 User is offline   Lexxtor 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 24-September 12

  Posted 24 September 2012 - 09:53 PM

Я решил сделать страницы на сайте с произвольными URL.
Для этого в начале конфига urlManager вписал:
'<slug:[\w\/]+>' => 'page/page/show',

- все адреса направляются на page/page/show и в контроллере page устанавливается параметр slug.
Я поставил это правило в начале, но мне надо чтобы правило не срабатывало если страницы с данным slug нету. Так что я заменил его на
array('class' => 'application.modules.page.PageUrlRule',),

В этом классе, по мануалу, написал 2 метода. В parseUrl() сделал так, что если страница с запрошенным адресом есть то метод возвращает нужный роут и запускается контроллер для страниц. Все работает как надо, за исключением того что контроллеру не присваивается slug (как при простом правиле) и он поэтому не показывает страницу.

Как сделать чтобы slug присваивался?

Вносить изменения в контроллер не хочу. Думаю что при запросе той же страницы в контроллере она будет браться из кеша.
0

#2 User is offline   ORey 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 425
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 24 September 2012 - 10:18 PM

Если не ошибаюсь, достаточно в parseUrl принудительно установить GET-параметры.
Что-то типа

$_GET['slug'] = $slug;
return 'controller/action';

Born to create drama
0

#3 User is offline   Lexxtor 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 24-September 12

Posted 25 September 2012 - 05:52 AM

View PostORey, on 24 September 2012 - 10:18 PM, said:

Если не ошибаюсь, достаточно в parseUrl принудительно установить GET-параметры.
Что-то типа

$_GET['slug'] = $slug;
return 'controller/action';



Спасибо. Помогло. Посмотрел в стандартном CUrlRule, там также делается.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users