Часто при разработке проекта разбитого на несколько приложений возникает проблема: как получить урл на ресурс из другого приложения проекта. Допустим у вас в проекте есть приложения: форум, интернет-магазин, панель управления и промо-сайт. Все это приложения относятся к одному проекту, но приложения: форум, интернет-магазин и промо сайт должны управляться через «панель управления».
Соотвественно у «панели управления» есть свой компонент UrlManager со своими правилами для построения урлов, который отвечает только за построение урлов «панели управления» и который совершенно не знает о правилах для других приложений. Но в панели управления нам нужно получать ссылки на ресурсы других приложений. Как же быть в таком случае?
На самом деле решается все довольно просто, мы просто создаем несколько экземпляров UrlManager в «панели управления» каждый из которых используют правила урлов из соотвествующих приложений. Т.е. в конфигурации мы получаем следующий примерно код:
//...'components' => [ //... 'urlManager' => [ // правила урлов для панели управления ],
'urlManagerForum' => [ // правила урлов для форума 'class' => 'yiiwebUrlManager', 'baseUrl' => '', 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => include("forum/config/inc/urlRules.php") //файл с правилами для форума],
],//...
Для получения урла для форума нам надо просто вызвать код вида:
echo Yii::$app->urlManagerForum->createUrl(['post/detail', 'postId' => $model->id]);
Все очень просто
Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…