2016-11-27 4 views
1

によって子を取得Laravel:(セクションは多くの写真を持つことができ、画像が一つだけセクションを持っている)1対多の関係で、私は、セクションおよび画像のモデルを持っている親スラグ

を私が取得することができますよすべてのセクションに画像があります。

$section = '1'; 
$records = Picture::where('section_id', $section)->orderBy('position')->get(); 

セクションスラッグ(または名前)で画像を取得する場合はどうなりますか? すべてのこれらの例は動作しません:

$section = 'wedding'; 
$records = Picture::where('sections.slug', $section)->orderBy('position')->get(); // nope 
$records = Picture::where($this->section()->slug, $section)->orderBy('position')->get(); // nope 

私はLaravelのドキュメントで検索してみましたが、私はケースを取得できませんでした... あなたがwhereHas機能を使用すべき関係を照会するために、あなたに

答えて

2

ありがとうございました。

あなたの関係がPictureモデルにsection()命名されている場合、クエリのようにする必要があります:

$section = 'wedding'; 

$records = Picture::whereHas('section', function($q) use($section) { 
          $q->where('slug', $section); 
         }) 
         ->orderBy('position') 
         ->get(); 

Docs

+0

ああ、私は、感謝しかし...それはもう少し「即時」だと思いましたこれは動作します! – Ivan

関連する問題