Как правильно прописать UrlManager в YII2?

Вопрос по urlManager Yii2
Необходимо сделать урл от корня (site.ru/zdanie-iz-cataloga-s-takim-nazvaniem), в связи с переносом сайта на Yii2
Что необходимо прописать в конфиге?
'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                'что-то с alias или суффиксом' => 'catalog/views/', 
            ],
        ]


И в контроллере CatalogController?
<a href="<?=Url::toRoute('view','$model->alias') ?>"><?=$model->name_zdanie?></a>
,
чтобы это нормально отрабатывалось/
Есть что-то, что по суффиксу .html перехватывало и отдавало в нужный контроллер?
  • Вопрос задан
  • 3619 просмотров
Решения вопроса 1
SamDark
@SamDark
Yii2 core team
Правила отрабатывают по одному сверху вниз. Соответственно первым ставить правило '' => 'site/index' нельзя. Оно всегда отработает. Его надо в самый конец.

Я так понял, что есть контроллер с роутом catalog/view и он принимает параметр alias. Если так, то правило такое:

'<alias>.html' => 'catalog/view'

Ну и генерация, соответственно:

<a href="<?=Url::toRoute(['/catalog/view', 'alias' => $model->alias]) ?>"><?= Html::encode($model->name_zdanie)?></a>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@slip31 Автор вопроса
Александр, спасибо. А разве
<?=Url::toRoute(['/catalog/view', 'alias' => $model->alias]) ?>
создат урл от корня?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы