2016-02-04 68 views
-1

我在多個帖子網站上工作,會有多個帖子,我需要做什麼,我需要動態seo友好的網址與帖子標題,
假設我創建了一個像"sachin tendulkar"然後在yii2它的url應該是像http://domain.com/sachin-tendulkar我怎麼能做到這一點在url?有沒有人有更好的解決方案?
我如何在yii2中管理這個問題,如果有任何例子,然後真的很感激。我嘗試了谷歌搜索,但沒有得到任何適當的解決方案如何在yii2中爲動態標題製作seo友好的網址

回答

2

使用SluggableBehavior http://www.yiiframework.com/doc-2.0/yii-behaviors-sluggablebehavior.html

與你的職位表創建新列,並在您的ActiveRecord添加以下代碼:

public function behaviors() 
    { 
     return [ 
      [ 
       'class' => yii\behaviors\SluggableBehavior::className(), 
       'attribute' => 'title', 
       // 'slugAttribute' => 'slug', 
      ], 
     ]; 
    } 

帖子的標題將在塞自動創建。

之後,在你的控制器的操作方法中使用這個slu get獲得正確的職位。例如:

class PostController extends Controller 
{ 
    public function actionView($slug) 
    { 
     $post = Post::findOne(['slug'=>$slug]); 
     ..... 
    } 
} 

而且,漂亮的URL,你應該設置在urlManager部分enablePrettyUrl財產在你的配置文件(http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#using-pretty-urls),並設置規則類似:

'urlManager' => [ 
    'enablePrettyUrl'=>true, 
    'showScriptName'=>false, 
    .... 
    'rules' => [ 
     'post/<slug:[a-zA-Z0-9_ -]+>' => 'post/view', 
      .... 
    ], 
]