FOSUserBundle의 사용자 매핑의 두 가지 속성을 재정의하려고합니다. Invalid field override named 'email'
'email'이라는 필드가 올바르지 않습니다.
오류는 여기서 발생합니다 :
use FOS\UserBundle\Model\User as BaseUser;
...
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
* @ORM\Table(name="user")
* @UniqueEntity(
* fields={"emailCanonical", "zone"},
* errorPath="email",
* message="This email address is already in use."
*)
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email", [email protected]\Column(type="string", name="email", length=255, unique=false, nullable=false)),
* @ORM\AttributeOverride(name="emailCanonical", [email protected]\Column(type="string", name="emailCanonical", length=255, unique=false, nullable=false))
* })
*/
class User extends BaseUser
{
...
모든 내가 접근 발생하는 경우를 제외하고, 잘 동작하는 것
// Doctrine\ORM\Mapping\ClassMetadataInfo
public function setAttributeOverride($fieldName, array $overrideMapping)
{
if (! isset($this->fieldMappings[$fieldName])) {
throw MappingException::invalidOverrideFieldName($this->name, $fieldName);
}
여기, $this->fieldMappings
만 포함을 자녀 사용자의 필드와 부모 (매핑 된 수퍼 클래스)가 아닙니다.
단서가 있습니까?
음, FOSUserBundle 문서는 달리 https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/doctrine.md#replacing-the-mapping 제안하는 것 -of-the-bundle –
매핑 덮어 쓰기를 XML에 넣으려고 했습니까? – Rob