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

Laravel中如何在with()方法的关联数组中传递参数

Laravel 模型 with() 传递参数给关联方法的正确方式

你当前的写法无法正确传递参数给关联方法,正确的做法是使用闭包来定义关联的查询逻辑,在闭包里调用关联方法并传入参数:

Model::with(['functionB', 'functionA' => function ($query) use ($parameters) {
    $query->functionA($parameters);
}])->get();

如果functionA是模型中定义的关联方法,需要根据参数过滤关联数据,也可以直接在闭包里编写过滤逻辑:

Model::with(['functionB', 'functionA' => function ($query) use ($parameters) {
    $query->where('column', $parameters);
}])->get();

补充说明

  • 不能直接在with()的数组键里写带参数的方法名,这种写法Laravel无法解析参数
  • 使用use($parameters)可以把外部变量传入闭包中,确保关联查询能获取到参数
  • 如果有多个需要传参的关联,每个都单独用闭包处理即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:10:27