【问题标题】:Convert SQL to Laravel ORM RELATONS将 SQL 转换为 Laravel ORM 关系
【发布时间】:2021-06-15 09:27:53
【问题描述】:

它正在工作,但我应该使用 Relaion

SELECT * FROM product JOIN ware_houses ON  product.id=ware_houses.product_id WHERE ware_houses.variant_id=1;

像这样……

Product::whereHas('ware_houses')->where('ware_houses.product_id',1)->get();

但它不起作用,因为whereHas 返回一个集合,我能做什么???请指教。

【问题讨论】:

  • 在 'get()' 方法之前添加“->first()”
  • 你只需要其中一个,而不是两个。
  • 它不只是一个,它会是动态的,我只是举个例子。

标签: php sql laravel


【解决方案1】:

你需要使用whereHas()来实际过滤:

Product::whereHas('ware_houses', function($q) {
    $q->where('ware_houses.product_id',1);
})->get();

【讨论】:

    【解决方案2】:

    谢谢你!!!

     $products=Product::whereHas('wareHouse',function(Builder $query) use ($id){
             $query->where('ware_houses.variant_id',$id);
     })->get();
    

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 1970-01-01
      • 2014-05-09
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 2010-09-29
      • 1970-01-01
      相关资源
      最近更新 更多