Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Forms symfony:如何摆脱难看的get参数_Forms_Url_Symfony1_Filtering - Fatal编程技术网

Forms symfony:如何摆脱难看的get参数

Forms symfony:如何摆脱难看的get参数,forms,url,symfony1,filtering,Forms,Url,Symfony1,Filtering,我正在使用表单过滤来过滤前端中的数据 问题是URL很难看 http://............./players/game/?st_player_cv_filters[location_id]=1&st_player_cv_filters[plateforme_id]=3&st_player_cv_filters[level_id]=3&st_player_cv_filters[_csrf_token]=023c5c9fb5fc7e7b6ed60d6839c36f67

我正在使用表单过滤来过滤前端中的数据

问题是URL很难看

 http://............./players/game/?st_player_cv_filters[location_id]=1&st_player_cv_filters[plateforme_id]=3&st_player_cv_filters[level_id]=3&st_player_cv_filters[_csrf_token]=023c5c9fb5fc7e7b6ed60d6839c36f67
(以下列方式呈现的表格:

 <?php echo $form->renderFormTag(url_for("game_player", $game), array('method' => 'get')); ?>
<table><tr><th><label for="location_id"><?php echo __('Country'); ?></label></th><td><?php echo $form['location_id']; ?></td></tr>

如何以更好的方式呈现此url?


谢谢

如果您有选择,您可以使用POST而不是GET。这将大大清理url。

如果框架/API本身支持您的需要,那么使用框架/API本身是一个好主意。根据您的问题,您可能可以使用帮助解决方案

例如,这包括:

如何将路由规则配置为 更改URL的外观

此外,它还谈到了您提到的长查询字符串:

例如,一个传统的URL 包含脚本的文件路径,以及 需要完成的一些参数 请求,如本例所示:

并谈到相关的问题:

URL的不可理解性使得 无论他们出现在哪里,他们都会感到不安, 它们稀释了气候变化的影响 周围内容

本章介绍如何使用配置和编程


您应该能够通过更易于阅读/不太复杂/更安全的URL来维护书签功能。

有时遇到此问题时,我会使用symfony的重定向方法从表单的接收页面重定向到表单本身

$this->redirect('.../formAction?'.http_build_query($get_vars));

使用url_for()方法,例如:

<form action="<?php echo url_for('.../formAction?'.http_build_query($get_vars)); ?>">
...
</form>

是的,但是使用POST,用户无法将筛选结果添加到书签中。而使用POST,我无法在页面中保留参数(doctrine pager)