我对 Silex 和 Symfony 还很陌生,我正在尝试使用 symfony Form 组件创建一个表单。效果很好,但是在验证/清理方面我不知道该怎么做。
我当然知道 $app->escape($data) 方法,但它似乎不适合我的需要。
在调用 $form->isValid() 方法之前,我想从提交的数据中转义 html 标记。我不想使带有 html 标签的文本无效,只需从文本中转义/删除它们,然后验证获得的值。
所以基本上我想将转义值提供给表单而不是原始值或使用。
我的问题是,只有在删除 html 标签后提交的文本为空时,我才想显示错误消息。
我想写一个自定义约束——因为我在包中没有找到任何关于 html 验证的信息——但在那种情况下,我必须过滤/转义两次,首先是在验证中,然后是在保存数据之前。
我想实现这样的目标:
if ($request->getMethod() == 'POST') {
$comment = $request->get('comment');
if($comment) {
foreach($comment as &$value) {
$value = $app->escape($value);
}
$cleared = new Request(array(), array('comment' => $comment));
$form->bindRequest($cleared);
if ($form->isValid()) {
var_dump($form->getData());
}
}
}
谢谢。