6
コントローラーでSQLを回避するための戦略...またはモデルにいくつのメソッドを含める必要がありますか?
したがって、私がかなり頻繁に遭遇する状況は、私のモデルが次のいずれかを開始する状況です。 たくさんの方法でモンスターに成長する または SQLの一部をそれらに渡すことができるため、数百万の異なるメソッドを必要としないほど柔軟です たとえば、「ウィジェット」モデルがあるとします。いくつかの基本的な方法から始めます。 get($ id) insert($ record) update($ id、$ record) 削除($ id) getList()//ウィジェットのリストを取得 それはすべてうまくできていますが、いくつかのレポートが必要です。 listCreatedBetween($ start_date、$ end_date) listPurchasedBetween($ start_date、$ end_date) listOfPending() そして、レポートは複雑になり始めます。 listPendingCreatedBetween($ start_date、$ end_date) listForCustomer($ customer_id) listPendingCreatedBetweenForCustomer($ customer_id、$ start_date、$ end_date) これがどこで成長しているのかを見ることができます...最終的には、非常に多くの特定のクエリ要件があるため、大量のメソッドを実装するか、単一の-> query(query $ query)メソッド... ...または単に弾丸を噛んで、次のようなことを始めてください: list = MyModel-> query( "start_date> X AND end_date <Y AND pending = …