1

みなさん、こんにちは。助けてくれてありがとう、

Doctrine2(&Symfony2)とOneToMany / ManyToOne双方向の関係を作りたいときに、現在問題に取り組んでいます。

これが私の2つのクラスです:User(FOSUserを拡張する)とコレクションはビデオのコレクションを表します。もちろん、ユーザーは複数のコレクションを持つことができますが、コレクションは1人のユーザーにのみ関連しています。

/* 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