我正在使用基于Symfony2的网站,使用GenemuFormBundle作为使用jQuery评级插件的评级系统。
当我使用捆绑包中的FormType时,我最后总会有一个星形。它是正在呈现的隐藏输入令牌。
我的猜测是,初始化jquery-rating插件的js部分并不过滤输入标签。但我不知道要改变什么,它可能是我的FormType配置。该文档的文档很清楚。
有谁知道如何解决这个问题?
这是我的测试代码(PHP):
$options = array('number' => 5, 'configs' => array('readOnly' => true));
$form = $this->container->get('form.factory')->create(new RatingType(), 2, $options);
return $this->templating->render($name, $parameters + array(
'ratingForm' => $form->createView()
));
TWIG:
{{form_widget(ratingForm)}}
{{form_javascript(ratingForm)}}
结果是6星评级。前5个是好的但是当悬停在最后一个时,标题是标记值。
由于
答案 0 :(得分:0)
好的,所以我找到了解决问题的方法。
这是因为csrf保护令牌输入与评级输入具有相同的名称。 (我猜它是因为formtype不应该像这样使用)所以当jQuery部分将其魔法应用于具有相同名称的所有输入时,它也会获取令牌。
我为避免这种情况所做的是向formType添加选项'csrf_protection' => false
。
$options = array('number' => 5, 'configs' => array('readOnly' => true), 'csrf_protection' => false);