Php Symfony-唯一实体约束不';行不通
我目前正在从事一个Symfony v3.3.6项目。 我有一个用户创建表单。 我想确保电子邮件和用户名(fos用户包)是唯一的 我目前拥有这个型号(只有一小部分): 但是,即使我写了一个已经存在的电子邮件地址,我也会遇到这种情况,当刷新时间到来时,我会遇到一个很大的SQL错误:Php Symfony-唯一实体约束不';行不通,php,forms,symfony,constraints,unique,Php,Forms,Symfony,Constraints,Unique,我目前正在从事一个Symfony v3.3.6项目。 我有一个用户创建表单。 我想确保电子邮件和用户名(fos用户包)是唯一的 我目前拥有这个型号(只有一小部分): 但是,即使我写了一个已经存在的电子邮件地址,我也会遇到这种情况,当刷新时间到来时,我会遇到一个很大的SQL错误: SQLSTATE [23000]: Integrity constraint violation: 1062 Duplicate entry 'emailtest@test.fr' for key 'UNIQ_8D93D
SQLSTATE [23000]: Integrity constraint violation: 1062 Duplicate entry 'emailtest@test.fr' for key 'UNIQ_8D93D649A0D96FBF'
但有趣的是,“NotBlank”约束工作正常,并在视图中显示“值不能为空”
这是我的表格:
class UserType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('lastname',null,array('required' => true))
->add('firstname')
->add('gender',null,array('required'=>true))
->add('organisationMember',null,array(
'required' => true,
'choices' => $options['organisation'],
'group_by' => 'type_organisation',
'placeholder' => 'Choisissez votre organisation'
))
->add('job')
->add('lang', null, array(
'required' => true
))
->add('mobile',null, array(
'required' => false
))
->add('phone', null, array(
'required' => true
))
->add('enabled')
->add('is_external')
->add('alert_failure')
->add('alert_full')
->add('alert_other')
->add('plainPassword', TextType::class, array('required' => false))
->add('email')
->add('profile', null, array(
'required' => true,
'placeholder' => 'Choose an organisation !',
));
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'ProjectBundle\Entity\User\User',
'organisation' => 'ProjectBundle\Entity\Organisation\Organisation',
'profiles' => 'ProjectBundle\Entity\User\Profile',
'csrf' => true,
));
}
}
如果有人有办法的话
提前谢谢你 您是否尝试过这样做:
/**
* @ORM\Entity(repositoryClass="ProjectBundle\Repository\User\UserRepository")
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @ORM\Entity
* @UniqueEntity(fields={"email", "username"}, groups={"registration"})
* @ORM\Table(name="user")
*/
但请确保您有唯一的电子邮件索引和用户名。您是否尝试过这样做:
/**
* @ORM\Entity(repositoryClass="ProjectBundle\Repository\User\UserRepository")
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @ORM\Entity
* @UniqueEntity(fields={"email", "username"}, groups={"registration"})
* @ORM\Table(name="user")
*/
但请确保您有唯一的电子邮件和用户名索引。目前,@CarcaBot的响应仅在DEV中有效,当文件和数据库相同时,更新不会改变PROD中的问题
一个想法?目前,@CarcaBot的响应只在DEV中有效,当文件和数据库相同时,更新不会改变PROD中的问题
想法?错误的可能重复项几乎相同,但建议的解决方案不起作用,我仍有SQL异常。错误的可能重复项几乎相同,但建议的解决方案不起作用,我仍有SQL异常。您的解决方案仅在开发中起作用。当我更新对产品的更改时,例外情况仍然存在。(数据库已经准备好了良好的索引)您的解决方案只在DEV中工作。当我更新对PROD的更改时,异常仍然存在。(数据库已准备好,索引良好)
/**
* @ORM\Entity(repositoryClass="ProjectBundle\Repository\User\UserRepository")
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @ORM\Entity
* @UniqueEntity(fields={"email", "username"}, groups={"registration"})
* @ORM\Table(name="user")
*/