2015-01-21 2 views
0

세 개의 테이블이 있습니다.Eloquent 값이 비어있는 경우 행을 생략하는 방법

  1. 고객
  2. 제품
  3. 리뷰 내가이 테이블 매핑에 대한 설득력을 사용했을

. 예를 들어

, 고객의 세부 사항에 대한 검토 모델에서

나는

public function customer(){ 
     return $this->belongsTo('Customer', 'customer_id'); 
} 

같은 제품 세부 사항에 대한 기능 I 기능

public function product(){ 
     return $this->belongsTo('Product', 'product_id'); 
} 

이제

같은 리뷰 모델 쿼리처럼 가지고 있습니다
Review::all()->with(array('customer', 'product'))->get() 

은 값을 반환합니다. 괜찮습니다. 그러나 고객이 삭제 된 경우 행 값은 비어 있습니다. 대신 그 행을 생략해야합니다. laravel에서 이것을 수행하는 방법.

답변

0

시도해보십시오. 아마도 어프로치에 where 절을 추가해도됩니다.

$allReviews = Review::all() 
    ->join('customers', 'reviews.customer_id', '=', 'customers.id') 
    ->join('products', 'reviews.product_id', '=', 'products.id') 
    ->where('customers.firstname','!=','') // given that there is a column firstname in table customers 
    ->get() 
당신은이 모델에 대한 필터링 has()을 사용할 수 있습니다
0

적어도 하나의 관련 모델 :

Review::with('customer', 'product')->has('customer')->get(); 
관련 문제