在 Laravel 模板中添加用户定义的 header

Adding a user defined header in Laravel Template

也许这是我在搜索时的措辞,因为我是 Laravel 的新手,但我正在尝试找出创建用户定义的 header 脚本变量的最可行方法。我在这背后的想法是能够拥有网站的 auth 部分 - /header 并且在该路线上我将能够管理 header 的一部分,我可以在其中添加 Analytics 脚本或任何第 3 方脚本标签。

想在我的主模板中包含 @yield('userHeader')

然后在每个页面中添加一个部分就应该包含它

@section('userHeader')
  {!! $header->script !!}
@endsection

所以我基本上必须为 Header 创建一个模型和一个新的数据库 table 来容纳整个脚本标签。

似乎可行,但我敢肯定以前有人这样做过。有没有更有效的方法来做到这一点?

如果我决定像上面所说的那样做,我基本上必须:

use App\Header;

在我想要的每个控制器中

$header = Header::all();

然后在每个页面中使用以下内容。此 table 中应该只有一条记录,因为只有一个用户定义 header,所以我不确定是否需要 DB table。这是在 header 中包含用户定义区域的最佳方式吗?如果这将包含特殊字符,是否会导致安全或站点稳定性问题?

@section('userHeader')
  @if(count($header) > 0)
    {!! $header->script !!}
  @endif
@endsection

你可以用 View Composers

或者您可以在主控制器中设置数据并从扩展主控制器的每个控制器访问它。我认为使用 View Composers 会更好