当前位置: 首页 > 知识库问答 >
问题:

Laravel懒惰渴望加载的问题

郎慎之
2023-03-14

我有一个问题,就是基于hasMany关系从数据库中获取数据并将其发送到Larave中的api。在下面的代码中,Laravel没有给我客户id=$id的产品。我不知道为什么,我不能在$query旁边发送$id。如果我把号码写在“我有很好的安全套,但我需要自动拿。

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

所有api代码

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

   return $products;
});

先谢谢你。

共有1个答案

梁丘招
2023-03-14

如果要在with方法中使用变量,必须在函数($query)后面键入use($id),如下代码所示。

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

如果您需要找到具有这些客户条件的产品,您可以使用其中有函数。查看这篇文章了解更多信息。

 类似资料:
  • 我已经阅读了本教程和这篇文章,但我不明白每种加载类型的确切用途。 我解释 我有这个POCO: 我明白这一点: > 对于懒惰加载:因为加载是懒惰的,如果我调用dbset将不会加载所有导航属性。这种类型的加载在性能和响应性方面是最好的。默认情况下启用它,如果我想重新启用它,我必须设置: 对于即时加载,它不是懒惰的:当我加载dpc\u-gestion时,它加载了所有导航属性。可以使用方法加载导航属性。要

  • 我正在使用教义2来绘制学术时间表。以下是对这些关系的简化观察: 一个类有事件(一对多) 事件具有类型(多对一) 一个事件有一个位置(多对一) 使用

  • 问题内容: 如果按以下方式实现单例, 此实现与延迟初始化方法有何不同?在这种情况下,实例将在加载类时创建,并且仅在第一次使用时才加载类本身(例如,Singleton.getInstance(),而当您声明实例Singleton singleton = null;时则不会)。 即使采用惰性初始化方法,该实例也是在对getInstance()的调用上创建的 我在这里想念什么吗? 问题答案: 您也可以调

  • 我有一个数据表的问题-懒加载。我认为问题是在IdiomasBean.java(TableBean.java),如果我把: 我得到了正确的数据表,但是<代码>按排序、筛选和不起作用。 我得到:java。lang.NullPointerException这里是堆栈跟踪: 下面是代码的其余部分: 指数xhtml diomasBean.java 懒散的数据模型。JAVA IdiomasBo.java 习语

  • 在Haskell中,下面的代码打印“[1,2,3,4,5”: 但是在Frege中,它抛出,代码如下: 这里唯一的区别是函数,它是从转换为和FWIW,函数是热切的。为什么整个表达式不能像Haskell中那样懒惰呢?在这里有可能实现类似弗雷格哈斯克尔的东西吗?

  • 我有对象主位置和主国家/地区 MasterLocation.java 主位置存储库.java 为什么对象MasterCountries仍然加载在findByLocationNameLikeIgnoreCase上?如何在此存储库中禁用获取主国家/地区? 谢谢