使用Laravel View Composer格式化页面标题

时间:2016-02-09 10:00:46

标签: php laravel view blade

我正在尝试使用View编辑器根据定义的部分自动修改页面标题。

@section('title', 'Page')

并像这样使用它:

<title>{{ $title }}</title>

我已将以下代码编写为作曲家,但它无法正常工作。它只显示标题为Website - Website时应显示Page - Website,如果不包含标题,则显示Website

View::composer('*', function($view){
    $title = $view->title;
    $view->with('title', !empty($title) ? $title . " - Website" : "Website");
});

这只需要在一个模板master上工作,但当我用'*'替换'master'时,它根本没有修改行为。

我需要更改哪些内容才能正确修改title部分?

1 个答案:

答案 0 :(得分:0)

您可以使用

view()->composer('*', function ($view) {
         $view->with('title', 'Your title');
});

在服务提供商处。 或者你可以使用分享

view()->share('key', 'value');

然后在视图中使用

  

{{$ key}}

可以尝试使用它:

 view()->composer('*', function ($view) {
                   $data = $view->getData();
                   //here you can get your data which was sent to view
                   //exmp. $old_title = $data['title']; 
                   //where 'title' - key of variable which sent via ->with('title','data')   
                   $view->with('title', 'new title');
});