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

如何在不使用控制器的情况下向Laravel 9 Blade组件传递数组或集合?

解决Laravel Blade组件无法传递数组的问题

问题场景

将页面中的用户循环逻辑抽成x-userlist组件后,尝试以下两种方式传递$users数组均失败:

<x-userlist users=$users/>
<x-userlist users={{ $users }}/>

问题原因

  • 第一种写法未使用冒号绑定,Blade会将$users识别为字符串字面量,组件收到的是字符串"$users"而非变量值
  • 第二种写法通过{{ }}输出数组,会将数组强制转为字符串(通常显示为"Array"),无法传递原数组

正确解决方法

1. 组件传参修正

使用冒号语法绑定变量,告诉Blade这是一个PHP表达式,以此传递数组:

<body>
<x-userlist :users="$users" />
</body>

2. 组件声明接收参数

在userlist.blade.php顶部添加@props声明,明确接收users参数:

@props(['users'])

@foreach ($users as $user)
    <!-- 你的循环渲染内容 -->
@endforeach

类组件补充说明

如果使用的是带类的非匿名组件,需在组件类中定义对应公共属性:

// app/View/Components/Userlist.php
namespace App\View\Components;

use Illuminate\View\Component;

class Userlist extends Component
{
    public $users;

    public function __construct($users)
    {
        $this->users = $users;
    }

    public function render()
    {
        return view('components.userlist');
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:55:32