我正在做一个项目,我有大约 98 个控制器。我们决定将这个项目迁移到 Symfony。我已经能够创建一个名为“mdBundle”的自定义包。
它已注册,如果我在 routing.yml 文件中使用 type: 注释,我可以毫无问题地访问控制器。
然而,因为我们有这么多的控制器,所以在动作中创建注释将需要很长时间。因此,我试图想出一种方法,让我的 routing.yml 可以处理任何请求并执行请求的控制器。
现在我的 routing.yml 看起来像这样:
mdRoute:
path: /{_controller}/{_action}/
defaults: { _controller: mdBundle:_controller:_action }
我Controller(DefaultController.php)
的是这样的:
namespace mdBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class DefaultController extends Controller
{
public function indexAction(Request $request)
{
return new Response('foo');
}
public function testingAction(Request $request)
{
return new Response('Bar');
}
}
当我运行它时,我收到以下错误:ControllerResolver.php 第 69 行中的 LogicException:无法解析控制器名称“默认”。
我的文件夹结构与 symfony 的默认结构有点不同。我的 Bundle 在里面/root/app/mdBundle/
(<-- 从这里它与 Symfony 相同)。任何人都知道为什么这不起作用。
或者还有什么方法可以在不必注释我的 98 个控制器中的每一个操作的情况下完成此操作?