用户表中有一个可用的is_deleted列。
删除用户时,记录未删除仅is_deleted设置为 1。
然后我使用相同的电话号码创建新用户。它显示唯一的验证错误。
我想跳过验证is_deleted记录。
我的用户配置文件实体
<?php
/**
* UserProfiles
*
* @ORMTable(name="user_profiles")
* @ORMEntity
*/
class UserProfiles
{
/**
* @var string
*
* @ORMColumn(name="phone_number", type="string", length=255, nullable=false)
*/
private $phoneNumber;
/**
* @ORMOneToOne(targetEntity="ApiBundleEntityUsers", inversedBy="userProfile")
* @ORMJoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $user;
验证约束 yml。
ApiBundleEntityUserProfiles:
constraints:
- SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity:
fields: [phoneNumber]
errorPath: phone_number
message: "Phone number is already exists."
我想在字段中添加user.is_deleted:[电话号码,user.is_deleted]
我不确定UniqueEntity
约束可以解决您的问题,因为is_deleted
在不同的实体上。您很可能需要使用Expression
或Callback
约束,以便可以实现更复杂的动态验证并从实体获取User
字段UserProfiles
。