【问题标题】:Zend - doctrine 2 querybuilder helpZend - 教义 2 查询构建器帮助
【发布时间】:2011-09-25 00:36:32
【问题描述】:

我想用这个:

$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(name="userid", referencedColumnName="userid")

1 个用户有很多用户实体..

我得到这个错误:

错误:类实体\用户没有名为用户的关联

我只想将用户左连接到用户实体..

我怎样才能左加入?

【问题讨论】:

    标签: zend-framework doctrine-orm


    【解决方案1】:

    尝试将此注释放在 $userid 字段的 Userentities 类中:

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

    你的用户类中的这个注释带有一个名为 $userentities 的新字段:

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

    【讨论】:

    • heyyep 它有效.. 我添加了一个用户,我可以在该表中选择一个用户实体列表......但是当我进行学说 2 查询时.. 它显示所有用户实体列以及left join tbale users 但它全部为空....我试图验证我的架构,它说:[映射] OK - 映射文件是正确的。 [Database] FAIL - 数据库架构与当前映射文件不同步。为什么我的左连接查询会带来空值?
    • 您是否使用 Doctrine CLI 更新您的架构? orm:schema-tool:update --force
    • 嗨。是的,这就是确切的命令。但是在阅读之后,我不认为这就是它没有拉动联合价值观的原因。它应该提取所有值,但它显示主左表,然后加入空值表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多