我正在使用表单过滤来过滤前端中的数据。
问题是网址很丑陋
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>
如何以更好的方式呈现此网址?
由于
答案 0 :(得分:3)
如果它支持您的需求,使用框架/ API本身是个好主意。根据您的问题,您可以使用Symfony routing API来提供解决方案......
例如,这个book chapter涵盖了它:
如何配置路由规则 更改网址的外观
另外,它提到了你提到的长串联字符串:
例如,传统的URL 包含脚本的文件路径和 完成所需的一些参数 请求,如下例所示:
http://www.example.com/web/controller/article.php?id=123456&format_code=6532
并谈及相关问题:
URL的无法理解 无论他们出现在哪里,他们都会感到不安 他们淡化了影响力 周边内容
本章使用配置和编程提供HOW IT WORKS: examples of how to change your URLs。
您应该能够通过更容易阅读/更简单/更安全的网址来维护书签。
答案 1 :(得分:1)
有时当我遇到这个问题时,我会使用symfony的重定向方法从表单的接收页面到自身运行重定向。
$this->redirect('.../formAction?'.http_build_query($get_vars));
OR
使用url_for()方法,例如:
<form action="<?php echo url_for('.../formAction?'.http_build_query($get_vars)); ?>">
...
</form>
答案 2 :(得分:0)
如果您有选项,则可以使用POST而不是GET。那将大大清理网址。