You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Blade模板中通过x-slot向布局传递数组

方法一:通过组件属性传递数组(推荐)

1. 修改布局组件文件(layout.blade.php)

在文件开头添加@props(['arr'])声明接收的参数,之后就能在布局内直接使用$arr变量:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<!--wrapper-->
<div class="wrapper">
    {{-- 直接处理$arr数组,示例:遍历输出 --}}
    @foreach($arr as $item)
        <p>{{ $item }}</p>
    @endforeach

    {{ $slot }}
</div>
<!--end wrapper-->
</body>
</html>

2. 在视图文件中传递数组

使用:arr语法绑定PHP变量(冒号表示传递变量而非字符串):

<x-layout :arr="$arr">
    {{-- 默认插槽内容 --}}
    <p>视图内的自定义内容</p>
</x-layout>
方法二:通过命名插槽传递(适合传递带渲染逻辑的数组内容)

如果需要先在视图里处理数组的渲染逻辑,再传递到布局展示,可使用命名插槽:

1. 修改布局组件文件

在布局中定义命名插槽arr:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<!--wrapper-->
<div class="wrapper">
    {{-- 渲染命名插槽的内容 --}}
    {{ $arr }}

    {{ $slot }}
</div>
<!--end wrapper-->
</body>
</html>

2. 在视图文件中填充命名插槽

在视图里通过<x-slot:arr>填充数组的渲染结果:

<x-layout>
    <x-slot:arr>
        @foreach($arr as $item)
            <span>{{ $item }}</span>
        @endforeach
    </x-slot:arr>

    {{-- 默认插槽内容 --}}
    <p>视图内的自定义内容</p>
</x-layout>

注意:仅传递原始数组变量时优先用方法一,更直接高效;方法二适合需要提前处理数组渲染逻辑的场景。

内容的提问来源于stack exchange,提问作者wxf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:22:45