2011-06-29 11 views
0

私はこの使用したい:Zendの - 教義2 querybuilderヘルプ

$query = $this->_doctrine->createQueryBuilder() 
     ->select('u') 
     ->from('\Entities\Users', 'l') 
     ->leftJoin('l.userentities', 'u') 
     ->getQuery(); 
return $info = $query->getResult(); 

と私のユーザエンティティは次のとおりです。

namespace Entities\Users; 

/** 
* @Entity 
* @Table(name="users") 
* @HasLifecycleCallbacks 
*/ 
class Users extends \Entities\AbstractEntity 
{ 
    /** 
    * @Id @Column(name="userid", type="integer") 
    * @GeneratedValue(strategy="AUTO") 
    */ 
    protected $userid; 
     /** @Column(name="itemid", type="integer") */ 

    protected $itemid; 
} 

と私のユーザエンティティのエンティティクラスが含まれます。

namespace Entities\Users; 

/** 
* @Entity 
* @Table(name="userentities") 
* @HasLifecycleCallbacks 
*/ 
class Userentities extends \Entities\AbstractEntity 
{ 
    /** 
    * @Id @Column(name="entityid", type="integer") 
    * @GeneratedValue(strategy="AUTO") 
    */ 
    protected $entityid; 
     /** @Column(name="userid", type="integer") */ 

    protected $userid; 

    /** @Column(name="crb", type="string") */ 

    protected $crb; 

} 

私はこれをエンティティに入れましたが、喜びはありません * @OneToMany(targetEntity = "Users"、inversedBy = "userid") * @JoinColumn(名前は= "USERID"、referencedColumnNameとは= "USERID")

1ユーザーが多くのユーザエンティティ..

を持っており、私はこのエラーを取得:

エラー:クラスエンティティ\ユーザーました何の関連性という名前のユーザー

私はちょうど左を行うusersentitiesへのユーザーと参加したいが...

は、どのように私は参加残っていないDOAことができますか?

/** 
* @var Entities\Userentities 
* @ManyToOne(targetEntity="Users", inversedBy="userentities", cascade={"persist"}) 
*/ 
private $userid; 

と新しいフィールドをユーザーのクラスでは、この注釈は$ userentitiesと呼ばれる:

答えて

1

は$ユーザーIDフィールドのためにあなたのUserentitiesクラスでこの注釈を入れてみてくださいそれが動作

/** 
* @var \Doctrine\Common\Collections\ArrayCollection 
* @OneToMany(targetEntity="Userentities", mappedBy="userid", cascade={"persist", "remove"}) 
*/ 
private $userentities; 
+0

heyyep。私はユーザーを追加し、そのテーブルのUserentitiesのリストを選択することができます...しかし、私はdoctrine 2のクエリを行う..それはすべてのuserentitiesの列を表示します。私はスキーマを検証しようとしましたが、それは言う:[マッピング] OK - マッピングファイルが正しいです。 [データベース] FAIL - データベーススキーマが現在のマッピングファイルと同期していません。私の左の結合クエリがNULL値をもたらすのはなぜですか? –

+0

Doctrine CLIを使用してスキーマを更新しましたか? orm:schema-tool:update --force –

+0

こんにちは。うん、それは正確なコマンドです。しかし、読んだ後、私はそれが結合された価値を引っ張っていない理由だとは思わない。それはすべての値をプルする必要がありますが、それはメインの左のテーブルを示しているし、その後null値 –