【问题标题】:How to pass variables master layout blade in Laravel 8如何在 Laravel 8 中传递变量主布局刀片
【发布时间】:2022-11-11 01:32:09
【问题描述】:

我正在使用 Laravel 8,但似乎不知道哪个控制器控制布局主刀片文件。我已经能够成功地将变量传递给子视图(配置文件页面)文件,但不知道如何使用布局视图主刀片来实现这一点。

我正在尝试将变量从app\Http\Controllers 中名为ProfileController 的控制器传递到主刀片布局。在配置文件控制器中,我有一个从数据库中检索用户配置文件数据的代码。

$profileInfo = Profile::with('address')->where('id', '=', '1')->get();
return view('admin_pages.profile', compact('profileInfo'));

在配置文件表中,我有名称和图像字段 first_name, last_name, photo,我可以使用 foreach 循环从传递给子视图的数据 $profileInfo 访问它们

@foreach($profileInfo as $data)
{{ $data->first_name}}
@endforeach

等等。

我的主刀片文件位于resources\views\layout\admin.blade.php。我希望能够显示来自admin.blade.phpnamesphoto,这样登录的用户即使没有访问他们的个人资料页面(子视图),也可以在登录时看到他们的个人资料图片位于resources\views\admin_pages\profile.blade.php,扩展主刀片(admin.blade.php)。

请帮忙。

【问题讨论】:

  • 主刀片文件仅由 extends 指令调用,而该指令又由控制器返回的视图调用。此外,请发布您想要访问的确切代码。否则,只需在主文件中使用isset
  • 我已经用@SachinBahukhandi 请求的确切代码更新了问题
  • 你“可以”使用视图作曲家

标签: php laravel laravel-8


【解决方案1】:

解决方案1: 您可以通过 @extends 作为第二个参数函数从刀片文件传递变量。

控制器:

public function index(){
$title='Sir/Madam';
return view('home',compact('title'));
}

主页.blade.php

  <?php
    @extends('layouts.admin', ['title' => $title])

布局.master.blade.php

dd($title)

你会看到结果。

【讨论】:

    【解决方案2】:

    我建议你学习 Laravel 组件。

    您可以使用动态数据在admin 布局中制作profile,无需在每个控制器和路由中传递变量即可重用。

    使用 artisan 创建一个 Admin 组件:

    php artisan make:component Profile
    

    它将创建一个Profile.php 作为组件控制器和profile.blade.php

    打开 Profile.php 并添加以下代码:

    public function render()
        {
            return view('components.profile', [
                'profile' => Profile::with('address')->where('id', '=', '1')->first();
            ]);
        }
    

    打开 profile.blade.php

    <div>
      {{$profile->first_name}}
    </div>
    

    现在,在模板管理员上呈现 Profile 组件。

    代替

    @foreach($profileInfo as $data)
    {{ $data->first_name}}
    @endforeach
    

    <x-profile/>
    

    您可以通过阅读此 link 中的刀片文档了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-17
      • 2014-05-22
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 2022-11-02
      • 2013-02-25
      • 2019-08-05
      相关资源
      最近更新 更多