Laravel Lazy Eager加载的问题

时间:2018-11-18 12:13:44

标签: laravel api eloquent

我在基于hasMany关系从数据库中获取数据并将其发送到Larave的api时遇到问题。 在下面的代码中,Laravel不会给我客户ID = $ id的客户产品。我不知道为什么,我无法在$ query旁边发送$ id。如果我在''中写数字,我会很好,但是我需要自动获取。

InputArray

所有api代码

Mat

谢谢。

1 个答案:

答案 0 :(得分:2)

如果要在with方法内使用变量,则必须像下面的代码一样在use($id)之后键入function($query)

$products = Product::where('name','like','%'.$request->q.'%')
    ->orWhere('symbol', 'like', '%'.$request->q.'%')
    ->with(['customers' => function ($query) use($id) {
         $query->where('id', '=', $id);
    }])->get();

如果您需要查找具有客户条件的产品,则可以使用whereHas功能。选中此post以获得更多信息。