首页 文章

Symfony Form Callback不会将对象作为第一个参数返回

提问于
浏览
0

我正在尝试将回调约束添加到Symfony 2.4中的复选框 . 我们的想法是检查对象上的其他值以及是否决定天气以允许验证通过 .

我有回调工作,但返回的第一个参数不是实体,而是复选框的值 . Symfony文档声明第一个参数将是对象 . http://symfony.com/doc/current/reference/constraints/Callback.html#the-callback-method . 我错过了'm not sure what I'

下面是表单代码:

use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContextInterface;

//...

public function buildForm(FormBuilderInterface $builder, array $options) {
    parent::buildForm($builder, $options);
    $builder->add('enabled', 'checkbox', array(
        'required' => false,
        'constraints' => array(
            new Assert\Callback(array(
                'callback' => array(
                    $this,
                    'validateisReady'),
                'groups' => $this->validationGroups))
        ),
    ))
    ;
}

public static function validateisReady($object, ExecutionContextInterface $context) {

    //..
    if($object->getItems()->count() < 1){
        $context->addViolationAt('enabled', 'items.missing');
    }
    //..
}

$ object保存复选框的布尔值 . 我希望它成为实体 . 有任何想法吗?

1 回答

  • 1

    您需要将此约束添加到实体对象,而不是表单 .

相关问题