为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 将变量传递给布局

Laravel - 将变量传递给布局

PHP
慕尼黑5688855 2022-06-17 15:40:49
我有一个布局,用于所有所谓的“部分”的每个循环。但是,每次我创建一个新的刀片文件并扩展该特定布局时,它都会不断地说该变量未定义。这是正确的,因为变量永远不会传递给布局文件。只有当我将变量传递给扩展布局的新刀片文件时,它才有效。如何在布局文件中使用该特定变量?布局文件<!doctype html><html lang="{{ str_replace('_', '-', app()->getLocale()) }}"><head>    <meta charset="utf-8">    <meta name="viewport" content="width=device-width, initial-scale=1">    <!-- CSRF Token -->    <meta name="csrf-token" content="{{ csrf_token() }}">    <title>{{ config('app.name', 'Laravel') }}</title>    <!-- Scripts -->    <script src="{{ asset('js/app.js') }}" defer></script>    <!-- Fonts -->    <link rel="dns-prefetch" href="//fonts.gstatic.com">    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">    <!-- Styles -->    <link href="{{ asset('css/app.css') }}" rel="stylesheet">    <link href="{{ asset('css/styles.css') }}" rel="stylesheet"></head><body><div id="app">    <div class="sidebar p-4 shadow-lg">        <ul class="list-unstyled">            <li class="sidebar-item"><a href="{{ route('sections') }}">Sections</a></li>            @foreach($sections as $section)                <li class="sidebar-item"><a href="">{{ $section->name }}</a></li>            @endforeach            <li class="sidebar-item"><a href="/">Go back home</a></li>        </ul>    </div>    <div class="custom-container">        @yield('content')    </div></div><script type="text/javascript" src="{{ asset('js/jquery-3.4.1.min.js') }}"></script><script type="text/javascript" src="{{ asset('js/jquery-ui.min.js') }}"></script><script type="text/javascript" src="{{ asset('js/main.js') }}"></script></body></html>服务提供者<?phpnamespace App\Providers;use App\Section;use Illuminate\Support\Facades\View;use Illuminate\Support\ServiceProvider;class ViewServiceProvider extends ServiceProvider{    /**     * Register any application services.     *     * @return void     */    public function register()    {        //    }
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您可以使用 View Composer 在渲染时将专门需要的数据传递给布局。您可以在服务提供者的boot方法中定义它:


use Illuminate\Support\Facades\View;


public function boot()

{

    View::composer('layout.yourlayout', function ($view) {

        $view->with('sections', ...);

    });

}


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号