Laravel中如何向组件化布局的侧边栏局部视图传递变量?
如何向Laravel Blade组件传递并接收用户信息
1. 在父视图中传递变量给组件
你只需要在调用<x-user.partials.sidebar />组件时,通过带冒号的属性把$user变量传递进去——冒号的作用是告诉Blade这是一个PHP变量而非字符串:
修改后的profile.blade.php代码:
<x-user.master> <x-slot name="title"> {{ $title ?? 'Profile | Reporter'}} </x-slot> {{-- 传递user变量到侧边栏组件 --}} <x-user.partials.sidebar :user="$user" /> </x-user.master>
2. 在侧边栏组件中接收并使用变量
打开侧边栏组件视图文件(路径通常为resources/views/components/user/partials/sidebar.blade.php),在文件顶部用@props声明需要接收的变量,之后就能在组件内直接使用该变量:
示例代码:
{{-- 声明接收user变量,可添加默认值避免变量不存在报错 --}} @props(['user']) {{-- 在组件内使用用户信息 --}} <div class="sidebar-profile"> <h3>{{ $user->name }}</h3> <p>{{ $user->email }}</p> <img src="{{ $user->avatar_url }}" alt="{{ $user->username }}'s avatar"> </div>
如果要处理变量可能不存在的场景,可以给@props添加默认值:
@props(['user' => null]) @if($user) <div class="sidebar-profile"> <h3>{{ $user->name }}</h3> <p>{{ $user->email }}</p> </div> @else <p>未登录</p> @endif
内容的提问来源于stack exchange,提问作者Mehedi Hasan
相关产品推荐
相关产品推荐

