是否可以仅为XHR请求限制Symfony 2路由?我想声明只能通过AJAX访问的路由.
我不想在每个特定于AJAX的操作中添加一些额外的行:
if ($request->isXmlHttpRequest()) {
// do something
} else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
我想定义:
为了避开上述条件.
Mar*_*der 93
我知道这个问题有点老了但同时在Symfony 2.4中引入了实现这一目标的新方法.
对于ajax限制,它看起来像这样:
contact:
path: /contact
defaults: { _controller: AcmeDemoBundle:Main:contact }
condition: "request.isXmlHttpRequest()"
Run Code Online (Sandbox Code Playgroud)
也可以在注释中:
/**
* ContactAction
*
* @Route("/contact", name="contact", condition="request.isXmlHttpRequest()")
*/
Run Code Online (Sandbox Code Playgroud)
Vit*_*ian 10
我的建议是定义你自己的路由器服务而不是默认路由器服务,它将扩展Symfony\Bundle\FrameworkBundle\Routing\Router
,并重新定义方法resolveParameters(),实现你自己的逻辑来处理额外的需求.
然后,您可以在路由中执行以下操作:
your_route:
pattern: /somepattern
defaults: { somedefaults }
requirements:
_request_type: some_requirement
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18981 次 |
最近记录: |