>  기사  >  백엔드 개발  >  Laravel의 여러 조건 관련 쿼리에 대해 질문이 있으신가요?

Laravel의 여러 조건 관련 쿼리에 대해 질문이 있으신가요?

PHP中文网
PHP中文网원래의
2017-03-21 16:18:454506검색

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)에 주목하세요!

관련 기사:

Laravel 관련 쿼리는 관리 객체의 데이터 중 일부만 가져옵니다.

Laravel 관련 쿼리 문제

Laravel 관련 쿼리 기사 및 기사 작성자

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.