我有一个非常非常基本的困境,我正在与@奋斗。我有一个发布到另一个页面的Symfony表单,基本上用户被重定向到template_2,表单存在于template_1上。我这样做是这样的:
renderFormTag('module/template2');
在template_2的操作中,我有以下代码:
if($request->isMethod('post'))
{
// retrieve form values from the Form available in template 1
$params = $this->getRequestParameter('formFieldName');
echo $params;
}
但是,这种情况并没有发生。
没有任何东西被回应。 我把一个回音“你好”,但这也没有执行。 事实上,我在if条件之外输入了一个echo“hello”,并且也没有回应。
我仔细检查了模板和动作的名称,那部分很好。
有谁可以告诉我在哪里弄乱?
答案 0 :(得分:0)
检查生成的HTML是否有效,然后检查表单标记中的url是否存在于symfony app:routes your_application_name
的输出中,如果它接受POST请求,您可以检查正确的路由是否匹配开发工具栏。
如果它是symfony生成的表单,我认为$this->getRequestParameter('formFieldName');
是错误的,因为生成表单中的字段通常封装在表单名称的数组中......所以你应该写$this->getRequestParameter('form_name[form_field_name]');
看HTML或者表单名称的基本表单类。但是要注意如果您以这种方式访问过帐的值(来自请求),他们永远不会被验证,重新创建表单,验证提交的数据和通过表单访问它们,请参阅操作类中的示例here(executeCreate
和processForm
方法。)