私は通常、自分のコントローラのすべてのクエリを保存するリポジトリディレクトリを作成します。私の質問は、雄弁なモデルやdb :: facadeを使う方が良いですか?私のプロジェクトを通して、通常Laravel 5.2 Eloquent
、私は両方を使用しますが、時にはそれが乱雑になります
public function getUsersLanguagues($user_id)
{
$query = DB::table('languages as l')
->select('l.name')
->leftJoin('language_user as lu', 'l.id', '=', 'lu.language_id')
->where('lu.user_id', $user_id)
->get();
return $query;
}
public function getUsersLanguagues($user_id)
{
return Languages::select('languages.name')
->leftJoin('language_user as lu', 'languagues.id', '=', 'lu.language_id')
->where('lu.user_id', $user_id)
->get();
}
私は彼らの両方がバックオブジェクト、コレクション、などのさまざまな種類を持って知っている...しかし、私はあると思いまして使用するのに最適な方法、または使用するのに推奨される方法。前もって感謝します。
しかし、あなたは本当に、少なくともないあなたがそれらを異なる見えるようにしようとしているように、いずれの例では雄弁を使用していません。とにかくモデルを使用していて、クエリビルダーをそのインスタンスの戻り値に適用するだけです。 – Ohgodwhy
彼はEloquent vs Query Builderとの比較が必要だと思います。私の意見では、Eloquent ORMはあなたに多くの「魔法」を与えますが、複雑なクエリがある場合などです。フルテキスト検索クエリを使用すると、自分のクエリを作成する必要があります。そして、この点に関して、パフォーマンス、可読性、などのいくつかの比較があります。それらを見てください。 – haitran