我正在尝试从我的实体'Entry'到实体FosUserUser创建关联。我创建了表条目在数据库和关系fos_user_user,然后学说生成实体:导入AcmeDemoBundle注释php app/console原则:generate:entities
快捷方式生成的实体:
/**
* 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),我把它改成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 'FosUserUser类型的实体在关联Acme'DemoBundle' entity 'Entry#user上,但期望找到Acme'DemoBundle' entity 'Entry
关联创建正确吗?问题在哪里?
好的,我解决了。是另一个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>