gpt4 book ai didi

symfony - 错误 : Class . ..\Entity\.. 没有名为的关联

转载 作者:行者123 更新时间:2023-12-02 18:41:03 24 4
gpt4 key购买 nike

这个问题与我的另一个问题相关:Doctrine2 gives me only first instance of related objects

我想出了双向关联来尝试解决我的老问题,但现在我遇到了另一个问题。

架构[编辑]:

  XYZ\Bundle\CitiesBundle\Entity\Cities:
type: entity
table: cities
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
generator:
strategy: IDENTITY
name:
type: string
length: 50
fixed: false
nullable: false
landarea:
type: decimal
nullable: false
density:
type: integer
unsigned: false
nullable: false
population:
type: integer
unsigned: false
nullable: false
manyToOne:
state:
targetEntity: States
cascade: { }
inversedBy: cities
joinColumn:
state_id:
referencedColumnName: id
lifecycleCallbacks: { }

实体:

class Cities
{
//other vars

/**
* @var XYZ\Bundle\CitiesBundle\Entity\States
*/
private $state;

//other get/set

/**
* Set state
*
* @param XYZ\Bundle\CitiesBundle\Entity\States $state
*/
public function setState(\XYZ\Bundle\CitiesBundle\Entity\States $state)
{
$this->state = $state;
}

/**
* Get state
*
* @return XYZ\Bundle\CitiesBundle\Entity\States
*/
public function getState()
{
return $this->state;
}
}

class States
{
//other vars and get/set

private $cities;

public function __construct()
{
$this->cities = new \Doctrine\Common\Collections\ArrayCollection();
}

/**
* Add cities
*
* @param XYZ\Bundle\CitiesBundle\Entity\Cities $cities
*/
public function addCities(\XYZ\Bundle\CitiesBundle\Entity\Cities $cities)
{
$this->cities[] = $cities;
}

/**
* Get cities
*
* @return Doctrine\Common\Collections\Collection
*/
public function getCities()
{
return $this->cities;
}
}

查询生成器用法:

    $query = $em->createQueryBuilder()
->select('c','s')
->from('CitiesBundle:Cities', 'c')
->innerJoin('c.state', 's')
->orderBy('c.population', 'DESC')
->setMaxResults(10)
->getQuery();

错误是:

[Semantical Error] line 0, col 58 near 's ORDER BY c.population': Error: Class XYZ\Bundle\CitiesBundle\Entity\Cities has no association named state

生成的 DQL:

SELECT c, s FROM CitiesBundle:Cities c INNER JOIN c.state s ORDER BY c.population DESC

羞耻:(

有人可以帮我解决我的问题吗?

[编辑]

我编辑了城市架构,现在错误是:

Notice: Undefined index: name in /home/marek/devel/sf2/cities/vendor/doctrine/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php line 473

最佳答案

我确信joinColumns:(注意复数)仅用于多对多关系。在其他关系中,您应该使用 joinColumn

在 Cities XML 中,尝试输入:

joinColumn:
name: state_id
referencedColumnName: id

除此之外,请尝试在 XML 中将“ManyToOne”重命名为“manyToOne”,但我怀疑这种情况是这里的问题...

希望这有帮助...

关于symfony - 错误 : Class . ..\Entity\.. 没有名为的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10456517/

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