Symfony如何验证EntityType字段

时间:2018-05-05 14:34:02

标签: php forms symfony validation orm

我的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不是静态函数!!

1 个答案:

答案 0 :(得分:4)

实体字段不允许选择无效值(如果您有无效值,它将无法找到实体 - >将无法发送表单)。这也是选择类型的行为。

但是对于回调,有一个特殊的回调约束 - https://symfony.com/doc/current/reference/constraints/Callback.html可以用来调用约束函数。