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']) ?>"/>