2
IntervalType이라는 사용자 정의 FormType을 생성하고 있습니다. 내 IntervalType은 start
및 end
의 두 필드를 가지며 정수 유형입니다. 이 사용자 정의 FormType은 data_class
없이 항상 사용됩니다.data_class가없는 양식에 콜백 어설 션을 사용할 수 없습니다.
start
이 end
보다 낮도록 제약 조건을 추가하고 싶습니다.
data_class
없이 Symfony \ Component \ Validator \ Constraints \ Callback을 FormType에서 직접 사용하는 방법은 무엇입니까? 여기
// src/AppBundle/Form/Type/IntervalType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Validator\Constraints\NotBlank;
class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('start', IntegerType::class, array(
'constraints' => array(
new NotBlank(),
),
))
->add('end', IntegerType::class, array(
'constraints' => array(
new NotBlank(),
),
))
);
}
}
parcially 작동합니다. '$ context-> getRoot()'가 루트 양식을 반환하므로'$ data [ 'start']'가 존재하지 않기 때문에 IntervalType을 다른 양식 안에 삽입하면 실패합니다. – murilolobato