Допустим frontend/config/main.php содержит следующие настройки urlManager:
//...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
['class' => 'frontend\components\MyClassUrlRule'],
'' => 'site/index',
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
//...
В свою очередь backend/config/main.php содержит следующие настройки urlManager:
//...
'components' => [
//...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'/admin' => 'site/index',
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
],
//...
В админке (backend) нам необходимо сделать ссылку на страницу сайта (frontend) при этом обработать ее нашим классом (MyClassUrlRule) в котором url будет преобразован к необходимому виду.
Первое, что необходимо сделать это добавить urlManager сайта (frontend), открываем backend/config/main.php и добавляем под urlManager следующий код:
//...
'components' => [
//...
'urlManager' => [
//...
],
'urlManagerFrontend' => [
'class' => 'yii\web\UrlManager',
'baseUrl' => '',
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'frontend\components\MyClassUrlRule'],
'' => 'site/index',
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
],
//...
Теперь в админке (backend) в нужном месте вызываем метод createUrl следующим образом:
echo Yii::$app->urlManagerFrontend->createUrl(['post/detail', 'postId'=>$model->id]);
И получаем необходимую ссылку.
По аналогии можно сделать и для ссылки с сайта (frontend) на админку (backend).
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
А где код класса MyClassUrlRule?
ОтветитьЯ так понимаю автор указал его для примера, если у вас нет специфического класса для url manager, то он вам не нужен
ОтветитьДобрый день!
ОтветитьСпасибо за пример, все работает. Одного только не пойму, почему не работает вариант:
Url::to('@frontend/web/images/catalog/'.$model->img)
Картинка получается:
<img src="G:\OSPanel\domains\cuberpress/frontend/web/images/catalog/product1.jpg" alt="">
Абсолютный адрес тоже по идее должен работать.