2011-09-13 22 views
0

私はDBのスクリーンショットのように見えたエンティティを持っている:これらのエンティティにどのようにDQLを記述できますか?

あなたはスクリーンショットhere-を見ることができます>http://imageshack.us/photo/my-images/830/asdsasda.jpg/

私はTnRegionパラメータを与えることによってTnModuleItemのオブジェクト配列を持って帰りたいと思います。

DQLでこのクエリを実行するにはどうすればいいですか?

編集:私はこのようなモデル書きたい:

public function get_module_items_by_region_id($region_id){ 
// code comes here 
return $tnModuleItemsObj //TnModuleItemsObject 
} 
+0

私は実際にあなたの質問を得ることはありません、あなたが検索したい正確な結果は何ですか?あなたの投稿を編集してください。 –

+0

が編集されました。あなたがそれを持って願って。 – MAB

+0

関数get_module_items_by_region_idはどこにありますか?エンティティ?関係はありますか? –

答えて

0

をそして、あなたが何かしようとした場合:

<?php 
public function get_module_items_by_region_id($region_id){ 
    $query = $em->createQuery('SELECT i FROM \namespace\TnRegionModuleItem as i WHERE i.regionId = :region_id'); 
    $query->setParameter('region_id', $region_id) 

    return $query->getResult() 
}  

?> 

をOffcourseあなたはどこからあなたのEntityManagerを取得し、変数$に置く必要があります私のケースでは、Zend FrameworkのためにBisna 'glue'を使用し、Zend_Registryによって取得しますが、それはあなたのケースで異なる可能性があります。

結果値では、モジュール項目をforeachすることができ、すべての要素はtnModuleItemオブジェクトです。

幸運を祈る!

+0

私はDoctrineとCodeigniterを使用しています。 TnRegionModuleItemには、regionIdという名前のフィールドまたはアソシエーションがありません。 – MAB

+0

TnRegionModuleItemをTnPageRegionと関連付けるTnRegionを設定する必要があります。私は何のためにそれをすることができますか? – MAB

+0

この特定のクエリには浮動小数点を設定する必要はありませんが、tn_region_module_itemを使ってmanyToMany関係をジョイント可能に設定するといいでしょう。あなたは私がちょうどあなたのクエリのどこの部分にregionIdフィールドがあるのか​​推測しているので、エラーをプロバーバで取得しています。完全なエンティティクラスを投稿してください。より完全な例を使って投稿を編集します。 –

0

OK。私はこの問題を解決しました:

  $query = $this->em->createQuery('SELECT rmi, mi FROM TnRegionModuleItem rmi JOIN rmi.moduleItem mi JOIN rmi.pageRegion pr JOIN pr.region r WHERE r.id = :regionid'); 

ルートエンティティを選択する必要があります。

関連する問題