Symfony FOS and relationships


Symfony FOS and relationships

我使用FosUserBundle。我有实体包装和订单。我正在尝试将Order与fos_user绑定。

我在这个网站上建模Symfony 2 FOSUserBundle产品关系表

用户:

class User extends BaseUser
{
    /**
     * @ORM'Id
     * @ORM'Column(type="integer")
     * @ORM'GeneratedValue(strategy="AUTO")
     */
    protected $id;
...

:

namespace My'SaleBundle'Entity;
use Doctrine'ORM'Mapping as ORM;
use Doctrine'Common'Collections'ArrayCollection;
use My'UserBundle'Entity'User;
/**
 * @ORM'Entity
 * @ORM'Table(name="order")
 */
class Order {
    /**
     * @ORM'Column(type="integer")
     * @ORM'Id
     * @ORM'GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
    * @ORM'ManyToOne(targetEntity="My'UserBundle'Entity'User", cascade={"remove"})
    * @ORM'JoinColumn(onDelete="CASCADE")
    */
    protected $user;
    /**
     * @ORM'OneToOne(targetEntity="Packages", inversedBy="id")
     */
    protected $package;
    /*... */
    /* Seetery i gettery */
    public function setUser(User $owner)
    {
        $this->user = $owner;
    }
    public function setPackage($val)
    {
        $this->package = $val;
    }
    /*... */
}

控制器:

        $usr= $this->container->get('security.context')->getToken()->getUser();
        $order= new Order();
        $order->setUser($usr);
        /*... */
        $em = $this->getDoctrine()->getManager();
        $em->persist($order);
        $em->flush();

我看到:Unrecognized field: user_id

由此可知http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-joincolumn namereferencedColumnName@JoinColumn的必需属性

改变这

/**
* @ORM'ManyToOne(targetEntity="My'UserBundle'Entity'User", cascade={"remove"})
* @ORM'JoinColumn(onDelete="CASCADE")
*/
protected $user;

/**
* @ORM'ManyToOne(targetEntity="My'UserBundle'Entity'User", cascade={"remove"})
* @ORM'JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $user;