如果其中一个字段设置为true php,则为inactive db字段



如果其中一个数据库字段设置为true,是否有方法自动将其设置为false?

例如:

User
----
admin
is_super_admin
is_coach_admin

用户只能是上述值之一。如果我将admin设置为true,我希望is_super_admin和is_coach_admin自动设置为false。我的意思是,不要设置在后台。有办法吗?至少,对symfony学说最好:(

您可以通过Symfony表达式实现业务逻辑的验证(如果一个值为true,则其他值应为false(:

https://symfony.com/doc/3.4/reference/constraints/Expression.html

# src/AppBundle/Resources/config/validation.yml
AppBundleModelUser:
properties:
isAdmin:
- Expression:
expression: "this.isSuperAdmin() == false"
message: "Admin cannot be a super admin also"

但若您想根据另一个字段设置一个字段的值,则可以使用Symfony事件。

$builder->addEventListener(
FormEvents::SUBMIT,
function(FormEvent $event) {
$form = $event->getForm(); 
$data = $event->getData();             
if ($data->isAdmin()){
$form->get('is_super_admin')->setData(false);
$form->get('is_coach_admin')->setData(false);
}
}
);

相关内容

  • 没有找到相关文章

最新更新