我试图在我的Symfony中添加一个带有2个参数的约束,但我没有成功。 我的代码:
表单字段我试图检查是否定义:
->add(
self::CUSTOMER_FAMILY_CUSTOMFIELD_FIELD_NAME,
'text',
array(
'constraints' => array(
new Constraints\Callback(
array(
'methods' => array(
array(
$this, 'checkField'
)
)
)
)
),
'required' => true,
'empty_data' => false,
'label' => self::trans('Some number'),
'label_attr' => array(
'for' => 'customfield'
),
'mapped' => false,
)
)
不要关心大写字母中的变量,它的Thelia CMS变量是明确定义的。
然后我的函数checkField如果定义如下:
public function checkField($field, ExecutionContextInterface $context)
{
if(strlen($field)!=0)$context->addViolation(self::trans('FIELD ERROR')}
这很好用。 然后我想在我的约束中添加第二个参数,这是一个Thelia CMS对象($ event)。但我不知道如何使用这种代码结构来做到这一点。
欢迎任何帮助。
答案 0 :(得分:0)
当我看到你的问题时,我可以看到这些可能的情况:
在这种情况下,您可以将$ event对象设置为包含checkField函数的类的属性,并在函数中使用其值。
在这种情况下,您可以像以前一样做,然后在表单事件回调中设置$ event属性,您还可以在其中重新定义字段,以便在期望的形式事件。