Yii2.0向布局文件中赋值变量,完善网站SEO信息。

yii的Controller基类中没有assgin方法,没办法像thinkphp一样直接给模板赋值变量。且View中的$this指向的是View基类而不是Controller。

所以在给布局文件赋值的时候需要先获取view对象。

public function setSeo($title = '', $keywords = '', $description = '')  
    {  
        $view = \Yii::$app->view;  
        $view->params['title'] = !empty($title) ? $title : "zeeue";  
        $view->params['keywords'] = !empty($keywords) ? $keywords : "zeeue.com,精品APP,mac免费软件,windows免费软件,mac游戏破解,windows破解软件,免费APP,精品APP,APP分享";  
        $view->params['description'] = !empty($description) ? $description : "zeeue.com专注分享精品Mac、Windows软件App,游戏。";  
    }  

然后再main.php中使用$this->params获取。

<title><?= Html::encode($this->params['title']) ?></title>  
<meta name="description" content="<?= Html::encode($this->params['description']) ?>">  
<meta name="keywords" content="<?= Html::encode($this->params['keywords']) ?>"/>