Нужно развести ЧПУ

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
louisvuitton
Сообщения: 196
Зарегистрирован: 2014.02.16, 03:09

Нужно развести ЧПУ

Сообщение louisvuitton »

Уважаемые,

У меня есть пользователи - модуль yii-user, и так называемые лучи beams - сделан модуль для работы с этими лучами и в нем нужные контроллеры отдельно для фронтенд, отдельно для бэкенд, и модель Beam.

У каждого пользователя (модель User) есть поля id, username и т.д., а также каждому пользователю принадлежит один beam (связь один к одному через поле user_id у Beam)

Требуется развести Url'ы так чтобы:
http://example.com/username - выдавал реальный путь - http://example.com/beam/main/getdata/id где beam - модуль, main - фронтенд контроллер, getdata - действие контроллера, и самое главное id - id луча принадлежащего пользователю с именем username

И еще, чтобы после логина на сайте по ссылке http://example.com/admin пользователя перекидывало на страницу где он может редактировать свой луч http://example.com/beam/back/update/id (здесь beam - модуль, back - бэкенд контроллер, update - действие контроллера, id - id луча, который принадлежит только что залогиненному пользователю) И желательно чтоб ссылка в браузере оставалась .../admin

Как это делается подайте советов? Это можно реализвать стандартными правилами не делая свой класс Urlmanager?

lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Нужно развести ЧПУ

Сообщение lynicidn »

развести по домам или на бабки?

louisvuitton
Сообщения: 196
Зарегистрирован: 2014.02.16, 03:09

Re: Нужно развести ЧПУ

Сообщение louisvuitton »

Петросян ворвался в студию?

Короче здесь, если вопрос посложнее поиска опечатки, маловат шанс дождаться нормального ответа.
Сделал сам, но с оговоркой -

из-за такого правила (хоть оно и добавлено в самом конце)
<id:\w+> => 'beam/main/getdata'

Перестали работать контроллеры и действия по умолчанию других модулей (например раньше url example.ru/rights вел на действие по умолчанию модуля rights, теперь стал вести на example.ru/beam/main/getdata/rights) и пришлось для каждого модуля заводить отдельное правило по его имени. Не уверен нормально ли это

Ответить