Исходя из опыта Laravel и Rails, я обнаружил, что довольно трудно понять, как работают правила Yii2.
Я ищу следующие шаблоны URL:
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 @.
Можно использовать <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');
}
}
Других решений пока нет …