関連モデルでLaravelのEloquent ORMで結果セットをフィルタリングすることは可能ですか? Eloquent がテーブルを結合しないことは理解していますが、希望する結果は次のようになります。
SELECT * FROM ticket JOIN statuses on ticket.status_id = statuses.id WHERE statuses.name != 'Closed';
Eloquent で見つけた最も近い機能は次のとおりです。
$tickets = Ticket::with(array('status' => function($q) {
return $q->where('name', '!=', 'Closed');
}))->get();
これでもすべてのチケットが返されますが、名前がクローズされていない場合はステータス関係のみが返されます。
また、これは Fluent で実行できることはわかっていますが、Eloquent が提供するネストされたオブジェクトの返された構造を使用したいと考えています。
echo ticket->status->name;
Fluent は、結合されたクエリのようにフラット化された結果を返します。