我有两个表的订单和产品。关系是一对一的。在订单类中,我创建了方法产品
public function product() {
return $this->hasOne('App\Product', 'key_id', 'key_id');
}
现在在控制器中,我想选择id不为null的行,这就是为什么我想使用InnerJoin
Order::where('order_id', 7)
->join('products', 'products.key_id', 'orders.key_id')
->get();
那很好,但我想得到
Order::where('order_id', 7)->get();
,所有联接都移至以下方法:
public function product() {
return $this->hasOne('App\Product', 'key_id', 'key_id')
->join('products', 'products.key_id', 'orders.key_id')
}
我该怎么做?
答案 0 :(得分:0)
您已经定义了两个模型之间的关系,因此如果使用以下查询获取订单:
Order::where('order_id', 7)->with('product')->get();
从产品功能(即->join('products', 'products.key_id', 'orders.key_id')
完成此操作后,将$ order转储并终止,将有一个包含产品及其值的密钥对。