Laravel의 다중 조건 관련 쿼리 문제:
Tableorder
Order table :
id
자체증가ID
order_id
주문번호
paid_date
결제 시간
테이블order_product
상품 주문 테이블:
id
자동- 증분 ID
fk_order_id
주문 번호, 외래 키
product_name
이름
product_number
개수
quantity
수량
테이블 관계:
order - 1:n - order_product
요구 사항:
Laravel 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%'
설명서를 여러 번 읽고 시도했지만 현재는 whereHas를 통해서만 B를 구현합니다. Product_name like 조건이 두 테이블 모두에 존재할 때는 조건의 이 부분을 수행할 수 없습니다.
라라벨 선배님들의 조언 부탁드립니다. 감사합니다!
추신:
은 현재 목록 페이지를 필터링하고 가져오는 중이므로 페이지 매김이 필요합니다.
해결책:
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 중국어 웹사이트(www.php.cn)에 주목하세요!
관련 기사: