Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2表格不';没有显示任何错误,但它不会';t显示_Php_Symfony - Fatal编程技术网

Php Symfony2表格不';没有显示任何错误,但它不会';t显示

Php Symfony2表格不';没有显示任何错误,但它不会';t显示,php,symfony,Php,Symfony,您好,我在sf2中有一个表单,它链接到一个实体,我在解决它的问题时遇到了问题。对于开始显示的表单get,我写入了大量文本get's submit如果我在controller的方法中运行print\r($\u POST),它会显示我提交的数据,但是如果我从isValid()内部运行,我不会得到任何信息,也不会从中得到任何错误,这让我不知道我做错了什么,也不知道如何修复它 控制器: /** * @Route("/papetarie/cautare", name="papetarie_search_

您好,我在sf2中有一个表单,它链接到一个实体,我在解决它的问题时遇到了问题。对于开始显示的表单get,我写入了大量文本get's submit如果我在controller的方法中运行print\r($\u POST),它会显示我提交的数据,但是如果我从isValid()内部运行,我不会得到任何信息,也不会从中得到任何错误,这让我不知道我做错了什么,也不知道如何修复它

控制器:

/**
 * @Route("/papetarie/cautare", name="papetarie_search_form")
 * @Template("CatalogBundle:Default:search_form.html.twig")
 */
public function showSearchFormAction(Request $request) {
    $form = $this->createFormBuilder()
    ->add('Keyword', 'text', array(
            'label' => 'Cautare Produs',
            'label_attr' => array('class' => 'sr-only'),
            'attr' => array(
                'placeholder' => 'Cautare Produs',
                'pattern'     => '.{2,}', //minlength
                'class'       => 'col-md-10'
        ),
            'constraints' => array(
                new NotBlank(array('message' => 'Campul nu poate sa fie gol')),
                new Length(array('min' => 2))
        ),
    ))
    ->add('submit', 'submit', array('attr' => array('class' => 'save btn-primary')))
    ->getForm();

    $form->handleRequest($request);

    if($form->isValid()) {
       $data = $form->get('Keyword')->getData();
       print_r($data);
    }


    return array(
        'search_form' => $form->createView()
    );
}
搜索_form.html.twig

{% for label, flashes in app.session.flashbag.all %}
{% for flash in flashes %}
<div class="alert alert-{{ label }}">
{{ flash }}
</div>
{% endfor %}
{% endfor %}

{{form_start(search_form, {'action': path('papetarie_search_form'), 'method' : 'POST', 'attr': {'id': 'papetarie_search_form', 'class': 'form-inline'} })}}
<div class="input-group col-md-10">
    {{ form_label(search_form.Keyword) }}
    {{ form_errors(search_form.Keyword) }}
    {{ form_widget(search_form.Keyword) }}
</div>
{{ form_widget(search_form._token) }}
{{form_end(search_form)}}
我转储错误以查看错误是什么的方式

if(!$form->isValid()) {
    echo "<pre>";
    //var_dump($form->getErrors());
    var_dump(get_class_methods($form));
}
我明白了

return $this->render('CatalogBundle:Default:search_form.html.twig', array('search_form' => $form->createView()));
当我还在寻找解决方案时,我发现了一些有趣的事情。
例如,如果我将路由改为/search,而不是/office/search,然后提交表单,那么表单会得到数据,并且工作正常。

操作返回语句必须如下所示


添加
退出
print\r

之后,您必须使用表单呈现模板,请查看sf2 cookbook。抱歉,我不太明白您的意思:实际上我发布了答案。您也可以尝试
$form->getErrorsString()
,尽管它已被弃用。在twig模板中,您可以尝试
dump(search\u form)
以及为什么只有两个人回答了问题,而我发布了这么多信息,但没有人知道会出现什么问题,我却得到了-1-(在呈现模板期间引发异常(“找不到模板”CatalogBundle:Default:showSearchForm”。)in::ecommerce.html.twig在第52行。我遇到了这个错误。我的错误将showSearchForm更改为search\u form.html.twigi注意到了这个错误,但我按照您所说的那样进行了测试:-D,即使我在最后使用render,我仍然会得到相同的结果。.表单已提交,但isValid()中没有任何内容未显示。所以您想检查它何时提交?顺便说一句,您的表单必须有效才能在if语句中执行操作。
if(!$form->isValid()) {
    echo "<pre>";
    //var_dump($form->getErrors());
    var_dump(get_class_methods($form));
}
var_dump($form->getErrorsAsString());
string(0) ""
return $this->render('CatalogBundle:Default:search_form.html.twig', array('search_form' => $form->createView()));