我的UserType'表格上有这个EntityType字段:
5
如何使用验证约束来验证此类型的字段,方式是用户只能选择国家/地区表格所有行范围内的值?我认为我应该使用带有回调的Choice约束,并在我的CountryRepository类中调用 getAllCountries 函数。那么管理这种情况的最佳方式是什么?
有些人喜欢这样:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('country', EntityType::class, array(
'class' => Country::class,
'choice_label' => 'nicename'
));
}
但是CountryRepository不是静态函数!!
答案 0 :(得分:4)
实体字段不允许选择无效值(如果您有无效值,它将无法找到实体 - >将无法发送表单)。这也是选择类型的行为。
但是对于回调,有一个特殊的回调约束 - https://symfony.com/doc/current/reference/constraints/Callback.html可以用来调用约束函数。