YiiFramework Динамическое создание кнопки в меню Yii2

Европа - быстрые серверы на дисках NVMe от $5 / Русский датацентр от 199руб

Тема в разделе "Yii Framework", создана пользователем _VlaDim_, 2 авг 2018.

Метки:
  1. _VlaDim_

    _VlaDim_ Новичок

    Сообщения:
    5
    Ваш город:
    Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Доброго времени суток!
    Вопрос такой: допустим пользователь из админки создает новый пункт меню 'documentation' и нужно, чтобы формировалась ссылка с новым контроллером и экшеном, скажем 'documentation/office'. Понятно, что такого контроллера и экшена нет, ведь создается все динамически пользователем в данный момент. Возможно ли в Yii2 прописать такой роутинг и формирование ссылок, чтобы ссылка была с тем url, который прописал пользователь, например в таблице в поле url, т.е. были уникальные controller/action ну и параметры и все обрабатывалось на каком-нибудь дефолтном контроллере и экшене?
    Заранее благодарен.
     
  2. ivanov77

    ivanov77 Новичок

    Сообщения:
    127
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    https://www.yiiframework.com/doc/guide/2.0/ru/runtime-routing#creating-rules
     
  3. _VlaDim_

    _VlaDim_ Новичок

    Сообщения:
    5
    Ваш город:
    Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    За ссылку спасибо, но пока нашел другое решение.
     
  4. vibropress

    vibropress Новичок

    Сообщения:
    2
    Ваш город:
    Николаев, Николаевская область, Украина
    Address:
    Mykolaiv, Ukraine
    Country:
    Location on Map:
    А какое, если не секрет?
     
  5. _VlaDim_

    _VlaDim_ Новичок

    Сообщения:
    5
    Ваш город:
    Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Позже напишу, как оттестирую.
     
  6. _VlaDim_

    _VlaDim_ Новичок

    Сообщения:
    5
    Ваш город:
    Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Идея такая...
    Когда хелпер формирует ссылку Url::toRoute(['some/something', 'alias' => 'do-something']);, а такого правила нет в rules, а есть

    rules => [
    .......................................................................................................................
    1) '<controller:[\w-]+>/<action:[\w-]+>/<alias:[\w-]+>' => 'handler/index'
    2) '<controller:[\w-]+>/<action:[\w-]+>/<alias:[\w-]+>' => '<controller>/<action>'
    .......................................................................................................................
    ];, то он будет создавать ссылку по 2) правилу, а разбираться ссылка без правила будет уже по 1).
    Конечно, все точные правила должны идти выше.
    Еще остается возможность работы с модулями. Они не подпадают под второе правило.