2015-05-21 53 views
3

來自Laravel和Rails的背景我發現很難找出Yii2規則是如何工作的。Yii2中的URL路由規則

我要尋找以下網址模式:

  • /用品/
  • /篇/圖/
  • /用品/ 1 /我 - 很 - 文章

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。

回答

6

它可以使用<id> PARAM:

'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'); 
    } 
}