使用 Laravel View Composer 设置页面标题的格式


Using Laravel View Composer to format page titles

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

@section('title', 'Page')

并像这样使用它:

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

我以作曲家的身份编写了以下代码,但它无法正常工作。它只是在应该说Page - Website时将标题显示为Website - Website,或者在不包含标题的情况下,Website .

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

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

我需要更改什么才能正确修改title部分?

您可以使用

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');
});