实体关联到FOS User


Entity association to FOS User

我正在尝试从我的实体'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>