如何在FOSUserBundle中获取自定义实体的所有属性?

时间:2016-07-18 15:15:07

标签: doctrine fosuserbundle symfony

我正在使用FOSUserBundle 我创建了一个扩展baseuser的User实体,并添加了一个名为$ apiKey的受保护属性。注册表格工作正常。

然后,我创建了一个扩展控制器的userController,并在一个methoid中编辑我的用户:

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')->find($id);

我的$ user有apiKey属性,但这是空的(当然DB中的字段不是)。

任何想法?

感谢

更新:用户实体

    namespace AppBundle\Entity;

    use FOS\UserBundle\Model\User as BaseUser;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
    use Doctrine\Common\Collections\ArrayCollection;

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

        /**
         * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Group")
         * @ORM\JoinTable(name="fos_user_user_group",
         *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
         *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
         * )
         */
        protected $groups;

        /**
         * @ORM\Column(type="string", unique=true, nullable=true)
         */
        protected $apiKey;

    /*    public function __construct()
        {
        parent::__construct();
        // your own logic
        //$this->roles = array('ROLE_USER');  //default role for new users
        }*/

        public function __construct()
        {
        parent::__construct();
        // your own logic
        $this->groups = new ArrayCollection();
        }

        /**
         * @return mixed
         */
        public function getApiKey()
        {
        return $this->apiKey;
        }

        /**
         * @param mixed $apiKey
         */
        public function setApiKey($apiKey)
        {
        $this->apiKey = $apiKey;
        }

        /**
         * @return mixed
         */
        public function getGroups()
        {
        return $this->groups;
        }

        /**
         * @param mixed $groups
         */
        public function setGroups($groups)
        {
        $this->groups = $groups;
        }
    }

0 个答案:

没有答案