現在、lumenを使用してAPIを作成していますが、データベースクエリをどこに置くべきかについて完全に自信がありません。私は、リポジトリのパターンを使用していますが、現在、私のレイアウトはそうのようなものです:リポジトリパターンを使用してLaravelクエリを配置する場所
- コントローラの負荷カスタムリポジトリ
- リポジトリ方法は、雄弁なクエリが含まれており、その結果を返します。
Controller --> Custom Repository --> Model
Controller <-- Custom Repository <-- Model
- 私は現在、それをやっているかの高レベルのコード例:
Controller.php
public function browse()
{
// customRepo added via dependency injection
$this->customRepo->browse()
}
customRepo.php
public function browse()
{
// other logic here
return Member::where('active', 1)->orderBy('date', 'desc')->get()
}
Eloquentを使用してデータベースにクエリを行いましたが、私のリポジトリがEloquent(およびいくつかのクエリビルダー)クエリでいっぱいになっているため、これらの呼び出しはすべてRepository内で起こっています。いくつかの情報源から、モデル内にクエリを入れるのはnot correctだと私は見てきました。
私の現在のアプローチはおそらく正しいと思う誰かが決定的に私に何かを教えてくれるかどうかを見たいと思っていました。もしそうでなければカスタムメソッドでモデルをパディングするのは大いに意味がありません必要です。