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

时间:2016-03-04 15:50:30

标签: php inheritance yii2

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

$this->view->title .= ' | Some title';

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

我目前知道工作的唯一方法是使另一个控制器类继承自controller类,并且define或set $this->view->title在构造方法中定义它,然后继承所有我的控制器来自这个类,如下所示:

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

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

然后在任何控制器中,我应该从MainController扩展。

问题是:

是否有任何配置方式或引导方式为页面标题设置默认值,那么我可以通过动作连接另一个值吗?

1 个答案:

答案 0 :(得分:3)

您可以在布局中处理此问题:

<title>My site name | <?= Html::encode($this->title) ?></title>

在您看来之后,您只需设置如下标题:

$this->title = 'Some title';

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

$config = [
    'name' => 'My site name',
    ...
];

在布局中使用它:

<title><?= Yii::$app->name ?> | <?= Html::encode($this->title) ?></title>