带有参数的渴望加载 - laravel
Posted
技术标签:
【中文标题】带有参数的渴望加载 - laravel【英文标题】:Eager loading with parameters - laravel 【发布时间】:2015-02-23 01:08:54 【问题描述】:我有Banks
表和带有services
的单独表
$bank = Banks::find(1);
echo $bank->service(1); // print bank with that service (serviceId 1)
可以预先加载所有 service_id =1 ..有点像的银行
Bank::with('service(1)')->get();
提前谢谢你
【问题讨论】:
你的意思是这样做 where service_id in (1) inside model ? 【参考方案1】:你可以用这个
return User::with(['posts' => function($query)
$query->whereNotIn('id',[1]);
])
->get();
【讨论】:
【参考方案2】:当然! with
方法接受一个闭包来过滤预先加载。
Bank::with(array('service' => function($query)
$query->where('id', 1);
))->get();
【讨论】:
你可以使用 "use" `Bank::with(array('service' => function($query) use ($param) $query->where( 'id', $param); ))->get(); ` @Tom,你拯救了我的一天!我一直在寻找这个一个小时,直到现在我还没有找到任何人指定如何在这里传递参数。谢谢!!!【参考方案3】:在你的模型中使用 WhereIn,你应该在数组中传递任何数字。
$Data = Banks::whereIn('service_id ', array(1, 2, 3))->get();
var_dump($Data);
我正在使用var_dump
,您应该选择自己的列来满足您的需求。
文档:Eloquent、Advance Where
【讨论】:
以上是关于带有参数的渴望加载 - laravel的主要内容,如果未能解决你的问题,请参考以下文章