douchi0638 2018-05-05 14:34
浏览 59
已采纳

Symfony如何验证EntityType字段

I have this EntityType field on my UserType's form:

public function buildForm(FormBuilderInterface $builder, array $options)
{
        $builder->add('country', EntityType::class, array(
             'class' => Country::class,
             'choice_label' => 'nicename'
        ));
}

How can i use validation constraints to validate this type of field in the way that user can only select a value in the range of all rows of country's table? I think that I should use Choice constraint with callback, and call the getAllCountries function inside my CountryRepository class. So what's the best way to manage this scenario?

Somethins like this:

// UserEntity.php

class User {

     /**
     * @Assert\Choice(callback="App\Repository\CountryRepository", "getAllCountries")
     * @ORM\ManyToOne(targetEntity="App\Entity\Country", inversedBy="users")
     */
    protected $country;
}

But CountryRepository is not a static function!!

  • 写回答

1条回答 默认 最新

  • dougu5847 2018-05-05 15:07
    关注

    Entity field doesn't allow to select invalid value (if you have invalid value it would't find the entity -> wouldn't be able to send form). This is as well behaviour of choice type.

    But for callback, there is special callback constraint - https://symfony.com/doc/current/reference/constraints/Callback.html which can be used to call constraint function.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。