2012-03-15 8 views
1

私はCodeigniterとDoctrineを一緒に使っています。私はこれらのツールの両方ですべてをセットアップしました。しかし、私はこのコードのビットを持っていなければならない場所がわからないんだけど:モデルまたはコントローラのdoctrineクエリ?

$query = $em->createQuery('SELECT u FROM sessions u'); 
$sessions = $query->getResult(); // array of User objects 

は、私は、コントローラやモデル/エンティティにこれを置くべきか?最初の考えでは、セッションモデルにこの種のロジックを入れるべきだと思っていましたが、コントローラーにあるはずのエンティティマネージャ$ emが必要です。

ありがとうございました。これは過去30分の間私を夢中にしています。

答えて

0

多くの人が、この種の情報を格納するDAOまたはデータアクセスオブジェクトと呼ばれるオブジェクトを作成したいと考えています。

DAOには、必要なデータを呼び出して返すことができるエンティティマネージャとメソッドが含まれています。たとえば、この関数はDAOに常駐します。

function findEmployeeById($emp_id) 

そして、データベースから従業員を取得するために使用されるクエリが含まれます。あなたのコントローラでは、エンティティマネージャを持つ代わりにそのレベルでDAOを使うだけです。

しかし、それは本当にあなたのプロジェクトの大きさと大きさによって決まります。

+0

私はどこでそのようなもの(DAO)をcodeigniterに入れますか?モデルでは、またはライブラリの一部として? – user594044

+0

私はcodeigniterにあまり慣れていませんが、おそらくモデルと一緒に置くでしょう。 –

関連する問題