带有参数的渴望加载 - 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的主要内容,如果未能解决你的问题,请参考以下文章

渴望加载实体框架核心

Laravel:渴望加载特定的列

Laravel 4:渴望加载

Laravel - 渴望加载多态关系的相关模型

渴望加载与 Kaminara 分页的多态关联

Laravel Eloquent:渴望加载多个嵌套关系