我试图通过我的实体创建关联'条目'到实体FosUserUser。 我在数据库中创建了表条目,并与fos_user_user建立了关系,然后通过以下方式生成了实体: php app / console doctrine:mapping:import AcmeDemoBundle annotation php app / console doctrine:generate:entities AcmeDemoBundle
快捷方式中生成的实体:
/**
* Entries
*
* @ORM\Table(name="entry", indexes={@ORM\Index(name="user_id", columns={"user_id"})})
* @ORM\Entity
*/
class Entry {
.............
/**
* @var \FosUserUser
*
* @ORM\ManyToOne(targetEntity="FosUserUser")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $user;
/**
* Set user
*
* @param \Acme\DemoBundle\Entity\FosUseUser $user
*/
public function setUser(\Acme\DemoBundle\Entity\FosUseUser $user = null)
{
$this->user = $user;
return $this;
}
}
使用setUser(\ Acme \ DemoBundle \ Entity \ Entry $ user = null)生成的Doctrine实体,我将其更改为setUser(\ Acme \ DemoBundle \ Entity \ FosUseUser $ user = null)。
现在我正在尝试创建对象条目 公共函数addEntryAction(){
$em = $this->getDoctrine()->getManager();
$user = $this->getDoctrine()->getRepository('AcmeDemoBundle:FosUserUser')->find($this->getUser()->getId());
$new_entry = new Entry;
$new_entry->setEntry('test');
$new_entry->setUser($user);
$em->persist($new_entry);
$em->flush();
结束问题是Symfony不匹配我的实体并响应错误 在关联Acme \ DemoBundle \ Entity \ Entry#user上找到类型为Acme \ DemoBundle \ Entity \ FosUserUser的实体,但期待Acme \ DemoBundle \ Entity \ Entry
是否正确地创建了关联或问题在哪里?
答案 0 :(得分:0)
好的,我解决了。 是另一个doctrine配置文件src / Acme / DemoBundle / Resources / config / doctrine / Entry.orm.xml与关系:
<many-to-one field="user" target-entity="Entry"> //should be target-entity="FosUserUser"
<join-columns>
<join-column name="user_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>