Symfony가 전자 메일 필드를 고유 한 것으로 표시하지 않습니다. validation.yml에서 설정할 수 있지만 좋은 방법은 아닙니다. 심포니가 전자 메일 필드를 고유하게 표시하지 않는 이유는 누구나 알 수 있습니까? 나는 기존의 DB에서 엔티티를 생성하는 실행symfony 생성 엔티티가 누락되었습니다.
내 명령 :
php app/console doctrine:mapping:convert xml ./src/Frontend/AccountBundle/Resources/config/doctrine/metadata/orm --from-database --force
php app/console doctrine:mapping:import FrontendAccountBundle annotation
php app/console doctrine:generate:entities FrontendAccountBundle
내 테이블 :
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=22 ;
에서 설정 /...../ User.orm.xml :
<field name="email" type="string" column="email" length="255" nullable="false"/>
법인/User.php에서
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255, nullable=false)
*/
private $email;
전자 메일 필드는 항상 고유해야합니다. 그것은 당신 한테 달려 있어요. –
고마워,하지만 SQL에서 그것은 단지 varchar 255입니다. 내가 명령을 할 때 그것을 덮어 쓰게되기 때문에 User.php에서도이 필드를 고유하게 입력하는 것은 이해가되지 않습니다. 첫 번째 대답에 대한 내 명령을 살펴보십시오. – craphunter
필요한 필드를 고유 한 것으로 설명하기 위해'uniqueConstraint'를 사용하십시오. 자세한 내용은 http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#uniqueconstraint 링크를 참조하십시오. –