2016-09-12 6 views
1

私は2つのテーブルパーツとイメージを持っています。各部分には複数の画像があります。すべての部品を画像で表示したいのですが、単一の画像を表示したいだけです。したがって、あるパーツに複数の画像がある場合は、1つの画像を表示したいと思います。ここに私のクエリですLaravelは各パーツの関係から単一レコードを取得します

return Part::with(['images'=> function($q) 
{ 
    $q->limit(1); 
}])->get(); 

上記のクエリは1つの画像しか表示しません。しかし、私は各部分ごとに1つのイメージを表示したいと思います。

は、以下のようなその行為として、 "と" で

+0

Iドンあなたの問題を理解していない、あなたは1つのイメージを取得していますが、イメージを部分的にしたいですか? –

+1

あなたのモデルは 'Parts'の代わりに' Part'ですか? –

+0

はい私のモデルはPartです。タイプミスがありました。 – rafiaTech

答えて

1

その不可能ありがとう:

select * from parts 

select * from images where id in (1, 2, 3, 4, 5, ...) limit 1 

代わりにあなたは以下のようなループでこれを行うことができます:

foreach (Parts::get() as $Part) { 
    $FirstImageOfPart = $Part->images()->first(); 
    // ... 
} 
+0

私が間違っていると誰かが正しいです – MoeinPorkamel

+0

ありがとうMoein Porkamel。出来た!私はLaravelにもっときれいな解決策があることを望んでいました。 – rafiaTech

関連する問題