Yii2页面标题不是从另一个类tha控制器继承控制器

Sai*_*akR 1 php inheritance yii2

在我的控制器的 action 中,页面标题可能设置如下:

$this->view->title .= ' | Some title';
Run Code Online (Sandbox Code Playgroud)

问题在这里,它似乎没有整个应用程序的默认标题。即我的站点名称 | 页面标题。

我目前知道的唯一工作方法是创建另一个从该类继承的控制器类,controller并$this->view->title 在构造方法中定义或设置它,然后从这个类继承我的所有控制器,如下所示:

namespace common\controllers
use Yii;
use yii\web\Controller;

class MainController extends Controller
{
   function __construct()
   {
     $this->view->title = 'My site name ';
   }
}
Run Code Online (Sandbox Code Playgroud)

然后在任何控制器中,我应该从MainController.

问题是:

是否有任何配置方式或引导方式为页面标题设置默认值,然后我可以通过操作将另一个值连接到它?

soj*_*oju 5

你可以简单地在你的布局中处理这个:

<title>My site name | <?= Html::encode($this->title) ?></title>
Run Code Online (Sandbox Code Playgroud)

在你看来,你只需要像这样设置标题:

$this->title = 'Some title';
Run Code Online (Sandbox Code Playgroud)

或者您也可以在配置中设置应用程序名称

$config = [
    'name' => 'My site name',
    ...
];
Run Code Online (Sandbox Code Playgroud)

并在您的布局中使用它:

<title><?= Yii::$app->name ?> | <?= Html::encode($this->title) ?></title>
Run Code Online (Sandbox Code Playgroud)