URL Yii2中的路由规则
URL routing rules in Yii2
来自 Laravel 和 Rails 的背景,我发现很难弄清楚 Yii2 规则是如何工作的。
我正在寻找以下 URL 模式:
- /文章/
- /articles/view/
- /articles/1/my-pretty-article
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@method。
可以使用 <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');
}
}
来自 Laravel 和 Rails 的背景,我发现很难弄清楚 Yii2 规则是如何工作的。
我正在寻找以下 URL 模式:
- /文章/
- /articles/view/
- /articles/1/my-pretty-article
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@method。
可以使用 <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');
}
}