Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2013, 10:15   #1
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию Yii. Последовательность правил

Привет! В конфиге указан urlManager & rules которые по которым обрабатываются запросы.
Есть 2 конкурирующих правила:
Код:
'<controller:\w+>/<action:\w+>/<factor:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<factor:\w+>/<ids:((id\d+)|\d)+>'=>'<controller>/<action>',
Меня интересует второе правило. В переменную $ids экшна должна передоваться либо строка вида id20id3id9 либо просто число.
Экшн получает id20id3id9, а вот если я пытаюсь туда число поставить, то не обрабатывает- срабатывает первое правило.
Почему? Как исправить?
bill вне форума Ответить с цитированием
Старый 16.04.2013, 22:32   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

http://www.example.com/controller/action/factor/20

Скажите, к какому правилу отнести данный URL? К первому или второму? Я уверен, что вы не сможете определить, так и машина не может. Она берёт первое подходящее правило и применяет его.
Чтобы поправить это - есть множество способов, но все они изменяют URL. Можно добавить дополнительную переменную или статику. Например:
Код:
'<controller:\w+>/<action:\w+>/<factor:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<factor:\w+>/ids/<ids:((id\d+)|\d)+>'=>'<controller>/<action>',
Тогда, если создавать новый URL:
PHP код:
Yii::app()->controller->createUrl('controller/action', array('factor'=>'factor''ids'=>20)) 
то получим URL вида: http://www.example.com/controller/action/factor/ids/12

Это один из вариантов решения.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем программистов для проект (на Yii) adtox Фриланс 0 27.03.2013 16:24
ZF2 vs. Yii helldog PHP 6 04.03.2013 10:43
Требуется PHP программист, Yii masax Фриланс 1 26.01.2013 23:17
YII Defunate Помощь студентам 0 30.11.2012 16:16
topserver+yii framework Farrel PHP 0 01.03.2011 00:49