Laravel の複数条件の関連クエリ問題について:
table order
Order table: order
订单表:
id
自增ID
order_id
订单号
paid_date
支付时间
表 order_product
订单产品表:
id
自增ID
fk_order_id
订单号,外键
product_name
名称
product_number
编号
quantity
id
自己インクリメント IDorder_id
注文番号paid_date
支払い時間
table order_product
注文商品テーブル:
id
自己インクリメント ID
fk_order_id
注文番号、外部キー product_name
名前 product_number
番号
order - 1:n - order_productLaravel Eloquent ORM を介して次のネイティブ SQL を実装:
select * from order as A inner join order_product as B on A.order_id=B.fk_order_id
where (A.paid_date between '2016-01-01' and '2016-09-01') and B.product_name like '%Apple iPhone%'
マニュアルを何回も読んでやってみましたただし、現在、B.product_name のような条件を実装するのは whereHas のみです。条件が両方のテーブルに存在する場合、それを実行することは実際には不可能です。
class Order extends Model { public function scopeProducts($query) { return $query->join('order_product', function($join) { $join->on('order.order_id', '=', 'order_product.fk_order_id'); }); } }
Order::products()->where(....);🎜上記は、Laravel の複数条件の関連クエリの問題に関するものです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。 🎜🎜関連記事: 🎜🎜🎜Laravel関連クエリは管理オブジェクトのデータの一部しか取得できない🎜🎜🎜🎜laravel関連クエリの問題🎜🎜🎜🎜laravel関連クエリの記事と記事著者🎜🎜