laravel 查找数据 Eloquent ORM 查询

现在 有 2个 表
goods 和 products

 $products = Goods::where('merchant_id','=','5')->get();


 foreach($products as $p){
            print_r($p->product_id);
            $_name = Product::where('id','=',$p->product_id)->get();
            $_name = $_name[0];

}

首先 我们去 goods 表 去 查询 merchant_id = 5 的 商品;

因为 在 goods 表里面 没有 改 商品的 名字 和 更多详细的信息 ;

所以 需要 循环 goods 表里查询到的数据 通过 goods 表的 product_id 字段 去 products 查询 products 的 id 字段 所匹配的 更多信息 (name ) 等等

改怎么查询呢

我现在想到的 是 给 $products 这对象 循环添加查询到的 名字

有大神指导一下吗 (*^__^*) 嘻嘻……

阅读 9.3k
2 个回答
phpclass Goods extends Model {

    public function product()
    {
        return $this->belongsTo('App\Products');
    }
}
$products = Goods::with('product')->where('merchant_id','=','5')->get();//数组里的product就是goods 表的 product_id 对应products的信息
我一般这么做 牵扯到两张表的查询 我会使用 fluent query buid 即:

$result = DB::table('goods')
            ->select(DB::raw('goods.*, products.*'))
            ->where('goods. merchant_id', '=', 5)
            ->join('products', 'goods.product_id', '=', 'products.id')
            ->get();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题