Php Symfony2是否正确处理restful url?我是否应该使用restful url?
我正试图找出设计我的URL的最佳方法。 以下是我迄今为止所做的工作:Php Symfony2是否正确处理restful url?我是否应该使用restful url?,php,symfony,url,restful-url,http-delete,Php,Symfony,Url,Restful Url,Http Delete,我正试图找出设计我的URL的最佳方法。 以下是我迄今为止所做的工作: account_index: pattern: /Accounts/ defaults: { _controller: "CoreBundle:Account:index" } requirements: { _method: get } account_create: pattern: /Accounts/ defaults: { _controller: "CoreBundle
account_index:
pattern: /Accounts/
defaults: { _controller: "CoreBundle:Account:index" }
requirements: { _method: get }
account_create:
pattern: /Accounts/
defaults: { _controller: "CoreBundle:Account:create" }
requirements: { _method: post }
account_read:
pattern: /Accounts/{id}
defaults: { _controller: "CoreBundle:Account:show" }
requirements: { _method: get }
account_update:
pattern: /Accounts/{id}
defaults: { _controller: "CoreBundle:Account:update" }
requirements: { _method: put }
account_delete:
pattern: /Accounts/{id}
defaults: { _controller: "CoreBundle:Account:delete" }
requirements: { _method: delete }
在测试了我所做的之后,我意识到更新和删除不起作用(总是调用account_read)。。。在谷歌搜索我的问题后,我发现并非所有浏览器都支持PUT和DELETE方法。。。将来可能会被丢弃
然后我读到RubyonRails通过做一些魔术在所有浏览器上支持这两种方法
所以我想知道,Symfony2能像ruby那样处理PUT和DELETE吗?
及
我应该使用restful url吗?是的,symfony2完全符合restful 我不知道rails的情况,但Symfony2使用不同的方法处理HTTP方法检测:
- 首先从中获取请求\u方法
- 然后,如果且只有method==POST,则从
头获取方法(回退到X-HTTP-method-OVERRIDE
请求参数)\u method
POST
进行检查,是因为浏览器只能发送GET或POST请求
与rails和/或symfony1不同的是,没有辅助工具可以使用相应的方法生成链接或表单。由您向应用程序生成有效的请求
PS:关于您的路由,您应该用大写字母在_方法上写下您的需求。如果您计划实现RESTful服务,您可以看看。他们已经有了相当好的url命名约定,您可能会同意,还有许多其他可以简化开发过程的东西
是的,Symfony2可以处理PUT和DELETE请求。关键不是Symfony能做什么或不能做什么,关键是“Restful url”如何处理当前可用的浏览器 有些浏览器不允许您使用某些HTTP方法(如put或delete),因此是的,一个好的实现将使用GET、POST、put、delete和PATCH,但您会遇到一些用户的问题:)
一如既往。。。浏览器…您知道为什么即使我的表单方法是“删除”,Symfony也会执行account\u read而不是account\u delete吗?即使您的html包含
,浏览器也不会发送删除请求。您可以使用