由于不规范的URL带有程序和数据库的结构信息会给程序带来隐患并且在程序中经常需要使用?name=value来传递变量的值所以修改URL非常重要.
在symfony中 使用 routing.yml 文件就可以修改URL
下面是一个URL修改的例子
将 project/news/show?title=123 修改成 project/news/123.html
在projiect/apps/myapp/config/routing.yml 添加下列代码
shownews:
url: /news/show
param: { module: news, action: show }
上面代码是定义一个 @shownews 路由使其访问 news/show
注意:每次修改routing.yml 后需要执行 symfony cc 清理缓存
在页面中添加如下代码
<?php echo link_to($name, '@shownews?title='. $title);?>
$name是超链接名称
$title是要传递的值
(如果 $name=’测试’ $value=’123′)
上面的php代码转换成HTML代码如下
<a href="/news/show?title=123">测试</a>
在projiect/apps/myapp/config/routing.yml 修改代码
shownews:
url: /news/:title.html
param: { module: news, action: show }
requirements:
title: \w+
PHP代码
将转换成
<a href="/news/123.html">测试</a>