1

大家好,感谢您的帮助,

我目前正在处理一个问题,而我想与 Doctrine2 (& Symfony2) 建立 OneToMany/ManyToOne 双向关系。

这是我的两个类:用户(扩展 FOSUser)和代表视频集合的集合。当然,一个用户可以有多个收藏,但一个收藏只与一个用户相关。

/* COLLECTION */
namespace Com\ComBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;


/**
 * Com\ComBundle\Entity\Collection
 *
 * @ORM\Table(name="collection")
 * @ORM\HasLifecycleCallbacks
 */
class Collection
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Com\UserBundle\Entity\User", inversedBy="collections")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;

    /**
     * Set user
     *
     * @param Com\UserBundle\Entity\User $user
     * @return Collection
     */
    public function setUser(\Com\UserBundle\Entity\User $user) {
        $this->user = $user;
        return $this;
    }

    /**
     * Get user
     *
     * @return Com\UserBundle\Entity\User User 
     */
    public function getUser() {
        return $this->user;
    }

}

和用户,

    /* USER */    
namespace Com\UserBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;


/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /* 
     * @ORM\OneToMany(targetEntity="Com\ComBundle\Entity\Collection", mappedBy="user")
     */
    private $collections;


    public function __construct()
    {
        parent::__construct();
        $this->collections = \Doctrine\Common\Collections\ArrayCollection();
    }       
}

当我使用doctrine:generate:entities 命令时,它不会生成与$collections (get/add/remove) 相关的方法,即使我自己编写,它也不起作用。例如,getCollections() 返回 NULL。

我在这段代码中缺少什么?

4

0 回答 0