我希望将控制器中的所有方法移动到单独的文件夹中,这些方法由AJAX请求执行。例如,创建文件UserBundle/Ajax/Ajax.php
并将所有AJAX请求方法放入此文件中。
将ajax请求与正常的http请求分开是否是正确的方法?我找不到任何如何做到这一点的例子。这在Symfony是可能的吗?我必须在这个Ajax.php
文件中扩展Symfony\Bundle\FrameworkBundle\Controller\Controller
吗?这样就好了,在捆绑包Ajax
和Controller
中将存在两个文件夹,包含控制器,但第一个用于ajax请求,第二个用于普通http请求?
对于这个问题,你知道什么架构模式吗?
发布于 2016-09-22 13:03:48
我不认为这样做有任何问题,只需确保正确定义路由路径:
注释路由的示例:
# app/config/routing.yml
app_bundle:
resource: "@AppBundle/Controller"
type: annotation
prefix: /
app_bundle_ajax:
resource: "@AppBundle/Ajax"
type: annotation
prefix: /
我必须在这个Ajax.php文件中扩展Symfony\Bundle\FrameworkBundle\Controller\Controller吗?
这不是强制性的,但是从Symfony 3.1开始,Symfony\Bundle\FrameworkBundle\Controller\Controller
就为您提供了像$this->json(...);
这样优秀的快捷方式
发布于 2016-09-22 13:06:20
您可以创建简单的AjaxController作为接收ajax请求的服务。然后,您可以将每个请求重定向到不同的控制器,它们将返回JsonResponces()。
https://stackoverflow.com/questions/39638959
复制