добавить настраиваемое поле в fosuserbundle


Я добавлю пользовательский столбец в таблицу пользователя. я использую symfony и fosuserbundle.

Вот мой обычай user.php

namespace MBS\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

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

/**
 * @var boolean
 */
private $nonotification;

/**
 * Set nonotification
 *
 * @param boolean $nonotification
 * @return User
 */
public function setNonotification($nonotification)
{
    $this->nonotification = $nonotification;

    return $this;
}

/**
 * Get nonotification
 *
 * @return boolean
 */
public function getNonotification()
{
    return $this->nonotification;
}

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

public function __construct()
{
    parent::__construct();

}

}

В своем контроллере я использую его так:

    $userManager = $this->get('fos_user.user_manager');
    $user = $userManager->createUser();
    $user->setUsername( $username );
    $user->setEmail( $email );
    $user->setPlainPassword( $password );
    $user->setEnabled(true);
    $user->setNonotification( 1 );
    $userManager->updateUser($user);

Новый пользователь будет добавлен в таблицу, но значение $user-setnonotification(1) не будет установлено. У меня нет ошибки в Symfony.

В чем моя ошибка?

Author: Miracle Johnson, 2014-09-25

1 answers

Вы забыли объявить информацию о сопоставлении доктрины в вашем поле nonotification

/**
 * @var boolean
 * @ORM\Column(type="boolean")
 */
private $nonotification;

Пожалуйста, ознакомьтесь с документацией.

 4
Author: Yann Eugoné, 2014-09-25 08:25:21