Задать вопрос

Как правильно сделать rule для UrlManager в Yii2?

Есть таблица городов в б.д. в формате
city_id, city_name, city_slug
Городов очень много. Делаю доску объявлений. Хочу такую структуру URL:
site.ru/city/category
т.е. первый параметр - это city_slug.

Решил вопрос так:
'<city>/<category>/<page:\d+>' => 'main/index',
'<city>/<category>' => 'main/index',
'<city>' => 'main/index',
''=>'main/index',


Теперь первый параметр в URL считаем всегда городом. И приходится выше этого кода писать rule под абсолютно все остальные контроллеры/экшены

Есть такое решение:
<city:(moskva|spb|samara ... )>
но вписать сюда весь список городов ? Их несколько тыс. И они должны браться из бд.

В общем, смысл проблемы: нужно посмотреть первый параметр в URL, и поискать его в таблице (поле city_slug). Если таковой имеется - отправить запрос в соответствующий контроллер, если нет - игнорировать...
  • Вопрос задан
  • 705 просмотров
Подписаться 4 Комментировать
Подписчики вопроса 4 К ответам на вопрос (2)