我想将我的所有方法从控制器(由AJAX请求执行)移动到单独的文件夹。例如,创建文件UserBundle/Ajax/Ajax.php
并将此文件放入我的所有AJAX请求方法中。
将ajax请求与正常的http请求分开是否是正确的方法?我找不到任何例子如何做到这一点。 Symfony有可能吗?我必须在此Symfony\Bundle\FrameworkBundle\Controller\Controller
文件中扩展Ajax.php
吗?那没关系,将在bundle Ajax
和Controller
中存在两个文件夹,包含控制器,但首先是ajax请求,第二个是正常的http请求?
对于这个问题,你知道任何架构模式吗?
答案 0 :(得分:1)
我认为没有任何问题,只需确保正确定义路由路径:
注释路由的示例:
# 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\Bundle\FrameworkBundle\Controller\Controller
为您提供了优秀的快捷方式,例如自{Symfony 3.1
$this->json(...);
答案 1 :(得分:0)
您可以创建简单的AjaxController作为接收ajax请求的服务。然后,您可以将每个请求重定向到不同的控制器,它们将返回JsonResponces()。