带有面包屑的Laravel刀片模板

时间:2018-07-10 18:00:26

标签: php laravel laravel-blade

我有一个模板admin.blade.php,其中包含以下代码:

@yield('breadcrumbs', Breadcrumbs::render(Request::route()->getName()))

在子文件中,我要么忽略面包屑,要么想做类似的事情:

@section('breadcrumbs')
    {{ Breadcrumbs::render(Request::route()->getName(), $event) }}
@endsection

问题在于,似乎仍在触发默认的yield内容,并且在调用该函数时出现错误。

  

函数的参数太少   DaveJamesMiller \ Breadcrumbs \ BreadcrumbsServiceProvider :: {closure}(),1   通过   C:\ xampp \ htdocs \ msu \ vendor \ davejamesmiller \ laravel-breadcrumbs \ src \ BreadcrumbsGenerator.php   在第68行,正好为2(查看:   C:\ xampp \ htdocs \ msu \ resources \ views \ event \ station \ edit.blade.php)

我了解什么,所以我的问题是如何实现我在刀片中要做的工作?

我还尝试了@section @show和section @stop,但这似乎只是隐藏了这些部分,并给了我同样的错误。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以创建一个组件来处理如果需要的情况:

<!-- resources/views/breadcrumb.blade.php -->

@if (isset($slot) && !is_null($slot))
    @section ('breadcrumbs')
        {{ Breadcrumbs::render(Request::route()->getName(), $slot) }}
    @endsection
@endif

然后在子视图中,可以调用组件:

<!-- resources/views/child.blade.php -->

@component('breadcrumb', ['slot' => $event]) @endcomponent

您可以将组件中的变量名称更新为所需的名称。

有关组件的更多信息:https://laravel.com/docs/5.6/blade#components-and-slots