jdo*_*dog 1 routing symfony1 url-for
我正在使用url_for('module/myaction/id/3')
在修改后的管理生成器屏幕中创建链接.每当我做一个新动作并尝试链接到它时url_for ('module/action/id/3')
,我明白/module/myaction/action
.
当我尝试url_for('module/3/myaction')
我得到相同的结果.
但是当我使用时,url_for('module/myaction?id=3')
我得到了预期的结果:module/3/myaction
我的路由文件中只有默认的管理员生成的路由规则.
这种行为有望吗?
是的,它是预期的......从某种意义上说,传入外部URL会产生意想不到的结果.
您应该将内部uri传递给url_for
内部URI,其形式如下:
@route_name?param=value
moduleName/actionName?param=value
您还可以通过使用路由名称和对象(如果是对象路由或路由集合)分别表示内部URL的参数,在这些情况下它们看起来像:
url_for('route_name', params);
params
路由所期望的对象(通常是Doctrine或Propel模型实例)或参数数组在哪里.
然后,路由系统将这些内部URI转换为外部URL.你得到的结果不正确,因为你试图传入外部URL,这没有意义,因为如果你知道网址,那么没有理由去路由它:-)