0
提交了一個包含開始和結束日期的表單,我需要一個Constraint來檢查結束日期是否晚於開始日期。添加約束以提交的形式比較兩個輸入
問題是,我不能攻擊一個約束到表單本身,只能到這個字段,因此我只能得到字段值,沒有來自其他表單輸入的值。
這是試圖使用回調約束的代碼。
class MyCustomType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('dateFrom', null, [
'constraints' => [
new NotBlank([
'message' => 'Error'
])
],
])
->add('dateTo', null, [
'constraints' => [
new NotBlank([
'message' => 'Error!'
]),
new Callback(function($object, ExecutionContextInterface $context, $payload) {
// Ėobject there is the field on which i check the constraint and i have no possible way to get the dateFrom value here
})
],
])
例如:
開始日期2017年1月1日 結束日期2018年1月1日 的形式將是有效的。
開始日期2017-01-01 結束日期2016-12-30 該表格將無效。
我相信這會工作,但有應與驗證約束標準的解決方案。 –