繁体   English   中英

将数据传递到组件视图刀片

[英]Passing Data to Component View Blade

当我尝试将数据从 controller 传递到视图刀片时,我遇到了困难。 我正在使用 laravel jetstream 作为我的项目的启动器,这是我的代码

仪表板 Controller

public function index()
{
    $this->data['currentAdminMenu'] = 'dashboard';

    return view('dashboard', $this->data);
}

主要布局

<body class="antialiased">
<div id="app">
    <div class="main-wrapper">
        @include('components.navbar')
        @include('components.sidebar')

        <!-- Main Content -->
        <div class="main-content">
            <section class="section">
                <div class="section-header">
                    @isset($header_content)
                        {{ $header_content }}
                    @else
                        {{ __('Pages') }}
                    @endisset
                </div>

                <div class="section-body">
                    {{ $slot }}
                </div>
            </section>
        </div>
    </div>
</div>

@stack('modals')

@livewireScripts

@isset($script)
    {{ $script }}
@endisset

侧边栏

<ul class="sidebar-menu">
        <li class="{{ $currentAdminMenu == 'dashboard' ? $activeClass : '' }}"><a class="nav-link"
                href="{{ url('/dashboard') }}"><i class="fas fa-fire"></i> <span>Dashboard</span></a></li>
        @foreach ($moduleAdminMenus as $moduleAdminMenu)
            <li class="menu-header">{{ $moduleAdminMenu['module'] }}</li>
            @foreach ($moduleAdminMenu['admin_menus'] as $moduleMenu)
                @can($moduleMenu['permission'])
                    <li class="{{ $currentAdminMenu == strtolower($moduleMenu['name']) ? $activeClass : '' }}"><a
                            class="nav-link" href="{{ url($moduleMenu['route']) }}"><i
                                class="{{ $moduleMenu['icon'] }}"></i> <span>{{ $moduleMenu['name'] }}</span></a>
                    </li>
                @endcan
            @endforeach
        @endforeach
    </ul>

仪表板视图

<x-app-layout>
<x-slot name="header_content">
    <h1>Dashboard</h1>
    <div class="section-header-breadcrumb">
        <div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
        <div class="breadcrumb-item"><a href="#">Layout</a></div>
        <div class="breadcrumb-item">Default Layout</div>
    </div>
</x-slot>

<div class="bg-white overflow-hidden shadow-xl sm:rounded-lg">
    <x-jet-welcome />
</div>

当我尝试运行代码时,我收到一条错误消息,例如Undefined variable $currentAdminMenu 但是如果我使用@extend布局更改仪表板视图,则不再有错误消息。
问题是如何使用<x-app-layout>$this->data从 controller 传递到仪表板视图。 这里有人可以给我任何建议或帮助我解决这个问题吗?
谢谢您的帮助

将数据传递到刀片模板

public function index()
{
    $this->data['currentAdminMenu'] = 'dashboard';

    return view('dashboard', [
        'data' => $this->data
    ]);
    // OR
    return view('dashboard')->with('data', $this->data);
}

数据名称的变量可以在刀片内部访问

根据文档,将数据传递给查看方法时,它应该是一个键值对。 https://laravel.com/docs/8.x/views#passing-data-to-views

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM