Везде в своих проектах правильно формируйте url, на любое действие на любой раздел, на любой элемент и т.д. Это позволит избежать кучи проблем с ростом проекта. Особенно с добавлением мультиязычности на сайт.
И так, в yii2 на эту тему есть множество примеров, с ними можно ознакомиться, например тут: https://github.com/yiisoft/yii2/blob/master/docs/guide/helper-url.md
Здесь же, мы рассмотрим конкретные примеры всего что связано с базовым модулем cms
Ссылки на разделы:
Ссылки на разделы сайта, по их id параметру
\yii\helpers\Url::to(['/cms/tree/view', 'id' => 10])
Ссылки на разделы сайта, по их объекту модели model
$model = \skeeks\cms\models\CmsTree::findOne(10);
\yii\helpers\Url::to(['/cms/tree/view', 'model' => $model])
Ссылки на разделы сайта, по их dir параметру
//Ссылка в раздел about
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about'])
//Ссылка в раздел about с параметрами
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about', 'param1' => 'test1', '#' => 'test1'])
//Абсолютная ссылка на раздел about
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about'], true)
//Абсолютная https ссылка на раздел about
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about'], 'https')
//Ссылка на вложенный раздел
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about/level-2/level-3'])
Но cms поддерживает концепцию многосайтовости. Поэтому можно в параметрах указать код желаемого сайта:
\yii\helpers\Url::to(['/cms/tree/view', 'dir' => 'about/level-2/level-3', 'site_code' => 's2'])
Ссылки в консольном приложении
Об этом стоит сказать особенно. Частый случай, что в yii2 сыпятся ошибки при запуске каких либо консольных утилит. Для корректной работы ссылок, необходимо сконфигурировать компонент UrlManager в конскольном приложении.
'urlManager' => [
'baseUrl' => '',
'hostInfo' => 'http://your-site.com'
]
А так же в bootstrap определить пару алиасов:
\Yii::setAlias('webroot', dirname(dirname(__DIR__)) . '/frontend/web');
\Yii::setAlias('web', '');
Populaire
Релиз SkeekS CMS 5.5.11 работает с yii2 2.0.24
- 13 août 2019
Как отправить форму в yii2 и skeeks cms через ajax?
- 18 avr. 2019