我正在使用symfony 1.4,我有这样的路线:
user_orders:
class: sfDoctrineRouteCollection
options:
model: UserOrders
module: user_orders
prefix_path: /orders
column: id
with_wildcard_routes: true
requirements:
id: \w+
我想在ID字段中输入带负数的订单,因此,当尝试访问此类/orders/12/edit
的网址时,我会转到编辑表单页面,这是正常的,但是,当访问网址时与/orders/-1/edit
一样,我收到错误Action "orders/1" does not exist.
,因此,我开始尝试使用ID中的字符串,但在访问网址/orders/id1/edit
时出现同样的错误Action "orders/id1" does not exist.
,所以,问题是,
这有可能吗?我的意思是,在网址中有id或字符串的负数?
路由配置中的要求是否正确?
最好的问候
答案 0 :(得分:2)
我要回答我自己的问题,也许它可以帮助其他人,经过几次尝试后修复很简单,我需要在user_orders
路由定义下创建另一条路径来覆盖{{ 1}}和user_orders_edit
路由,最后,它看起来像这样:
user_orders_update
我无法在网址中使用负数,但我能够使用类似user_orders:
class: sfDoctrineRouteCollection
options:
model: UserOrders
module: user_orders
prefix_path: /orders
column: id
with_wildcard_routes: true
requirements: {id: \w+}
user_orders_edit:
url: /orders/:id/edit.:sf_format
class: sfDoctrineRoute
options: { model: UserOrders, type: object }
param: { module: user_orders, action: edit, sf_format: html }
requirements: { sf_method: get, id: \w+ }
user_orders_update:
url: /orders/:id.:sf_format
class: sfDoctrineRoute
options: { model: UserOrders, type: object }
param: { module: user_orders, action: update, sf_format: html }
requirements: { sf_method: put, id: \w+ }
的字符串
做到了
答案 1 :(得分:0)
要重振旧问题,但我自己偶然发现了这个问题:
requirements
不是options
的孩子,而是兄弟姐妹(与选项相同的级别)。所以这将有效:
user_orders:
class: sfDoctrineRouteCollection
options:
model: UserOrders
module: user_orders
prefix_path: /orders
column: id
with_wildcard_routes: true
requirements: {id: \w+}