2016-09-09 9 views
1

すべての商品が返品されるクエリを作成しようとしていますが、その特定の商品の関係が存在する場合はその情報も含まれます。クエリに現時点でリレーションシップを含めると、そのリレーションシップが存在するかどうかにかかわらず、各アイテムではなく、そのリレーションシップを持つアイテムのみが返されます。ここでLaravelは存在する場合、関係の結果を含む

は、現時点では私のクエリです:

public static function filterProduct($vars) { 

     $query = Product::query(); 

     if((array_key_exists('order_by', $vars)) && (array_key_exists('order', $vars))) { 
      $query = $query->orderBy($vars['order_by'], $vars['order']); 
     } 

     if(array_key_exists('category_id', $vars) && $vars['category_id'] != 0) { 
      $query = $query->whereHas('categories', function($q) use ($vars) { 
       return $q->where('id', $vars['category_id']); 
      }); 
     } 

     if(array_key_exists('manufacturer_id', $vars)) { 
      $query = $query->whereHas('manufacturer', function($q) use ($vars) { 
       return $q->where('id', $vars['manufacturer_id']); 
      }); 
     } 

     $query = $query->whereHas('options', function($q) use ($vars) { 

     }); 

アイテムは、私は特定の行が返される日付でその関係の詳細が含まれていることを持っている必要があります「オプション」の関係を有している場合には、見ることができるように。コードはそのままですが、すべての単一アイテムではなく、この関係を持つアイテムのみを返します。

これがどのように達成されているかお伝えしてくれる人はいますか?

ありがとうございます!

答えて

0

は、私はそれはとても簡単だったが、それはこれを追加することで解決したように、ビット愚かな感じ:

$クエリ= $ query->(「オプション」)を持ちます。

関連する問題