2017-01-16 4 views
0

私のデータベースには以下の2つのテーブルがあります。私がやろうとしています何Laravel ORMを使用してアイテムを検索

offers(table)

id 
name 

features(table)

id 
offer_id 
name 

featuresの特定のセットのために、様々なoffersを取得することです。 だから私は、次のコードを使用してみてください、私は期待どおりの結果を得ていないのです。例えば

$offers = Feature::find(['1', '2', '3'])->offers; 

12のidを持つfeaturesoffer 1に属します。

feature 3は、offer 3に属します。上記のコードから

は、私が $offersは、私は以下のコードを使用してみてください2つの要素だけ offer 1 and 2

を入れたいのですが、offersが重複している:

$offers = DB::table('features') 
      ->whereIn('features.id', ['1', '2', '3']) 
      ->join('offers', 'offers.id', '=', 'features.offer_id') 
      ->get(); 

は親切に私は問題を解決するのに役立ちます。

答えて

0

はこれを試してみてください:

$offers = DB::table('features') 
->whereIn('features.id', ['1', '2', '3']) 
->join('offers', 'offers.id', '=', 'features.offer_id') 
->groupBy('offers.id') 
->get(); 
0

私はあなたが条件

$offers = DB::table('features') 
      ->whereIn('features.offer_id', ['1', '2', '3']) 
      ->join('offers', 'offers.id', '=', 'features.offer_id') 
      ->get(); 
0

に、私は次のコードを使用して私の問題を解決してきたところで、このfeatures.offer_id代わりのidを試みるべきだと思います。それが改善されることを願って:

$offers = []; 

    $features = Feature::find(['1', '2', '3', '4', '5']); 

    foreach($features as $feature) { 
     $offers[$feature->offer_id] = $feature->offer; 
    } 

    dd($offers); 
関連する問題