gpt4 book ai didi

join - 未找到学说 2 加入协会

转载 作者:行者123 更新时间:2023-12-01 09:37:09 25 4
gpt4 key购买 nike

我在 Zend 1.11 中使用 Doctrine-2.0.4。 Php 映射器和实体是从 MySQL 数据库生成的。现在我正在尝试一个连接两个表的查询,并且只得到

[语义错误] 'e' 附近的第 0 行第 48 列:错误:类实体\用户没有名为帐户的关联

询问:

$query = $em->createQueryBuilder()
->select('u')
->from('\Entities\Users', 'u')
->leftJoin('u.Accounts', 'a')
->getQuery();
$info = $query->getResult();

在我的数据库中有两个表: 用户、帐户
  • 用户有字段 id、accountId
  • 帐户有字段 id, info

  • Users.accountId 有一个 双向一对一关联到 Accounts.id
    <?php
    namespace Entities;
    /**
    * Users
    *
    * @Table(name="users")
    * @Entity
    */
    class Users
    {
    /**
    * @var integer $id
    *
    * @Column(name="id", type="integer", nullable=false)
    * @Id
    * @GeneratedValue(strategy="IDENTITY")
    */
    private $id;
    /**
    * @var integer $accountid
    *
    * @Column(name="accountId", type="integer", nullable=false)
    * @OneToOne(targetEntity="accounts", inversedBy="id")
    * @JoinColumn(name="accounts_id", referencedColumnName="id")
    */
    private $accountid;
    ...
    }
    <?php
    namespace Entities;
    /**
    * Accounts
    *
    * @Table(name="accounts")
    * @Entity
    */
    class Accounts
    {
    /**
    * @var integer $id
    *
    * @Column(name="id", type="integer", nullable=false)
    * @Id
    * @GeneratedValue(strategy="IDENTITY")
    * @OneToOne(targetEntity="users", mappedBy="accountid")
    */
    private $id;
    ...
    }

    最佳答案

    您应该更改 $accountId User 实体上的属性为 $accounts因为它不是整数,所以它是 Accounts实体:

    /**
    * @var Accounts $accounts
    *
    * @Column(name="accountId", type="integer", nullable=false)
    * @OneToOne(targetEntity="Accounts", inversedBy="id")
    * @JoinColumn(name="accounts_id", referencedColumnName="id")
    */
    private $accounts;

    您当前的查询不起作用,因为没有 Accounts 属性。如果您进行上述更改,则以下内容应该有效:
    $query = $em->createQueryBuilder()
    ->select('u')
    ->from('\Entities\Users', 'u')
    ->leftJoin('u.accounts', 'a')
    ->getQuery();
    $info = $query->getResult();

    关于join - 未找到学说 2 加入协会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692669/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com