Правила маршрутизации URL в Yii2

Исходя из опыта Laravel и Rails, я обнаружил, что довольно трудно понять, как работают правила Yii2.

Я ищу следующие шаблоны URL:

  • / Статьи /
  • / Статьи / просмотр /
  • / Статьи / 1 / My-очень-статья

ArticlesController определяется как:

<?php

namespace app\controllers;

class ArticlesController extends \yii\web\Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionView()
{
return $this->render('index');
}

}

Пока что я попробовал:

'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' =>
[
'articles/view' => 'article/view'
],
],

Мне больше интересно перенаправить мой шаблон на метод controller @.

3

Решение

Можно использовать <id> пары:

 'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<controller:\w+>/<id:\d+>/<slug:\w+>' => '<controller>/view',
],
],

И ваш контроллер статей:

<?php

namespace app\controllers;

class ArticlesController extends \yii\web\Controller
{
public function actionView()
{
$id = (int) Yii::$app->request->get('id');

return $this->render('index');
}
}
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]