0

我正在尝试向我的应用程序添加一个路由,以便我可以将它与 ajax 调用一起使用。

这是我在 application.ini 中的内容

;Routes
resources.router.routes.products.route = "/backend/api/:command"
resources.router.routes.products.defaults.module = "backend"
resources.router.routes.products.defaults.controller = "api"
resources.router.routes.products.defaults.action = "index"

当对 /backend/api/SomeCommand 进行 ajax 调用时,会产生以下错误:

消息:指定的控制器无效(后端)

array (
  'controller' => 'backend',
  'action' => 'maestro',
  'module' => 'default',
)

如您所见,模块已设置为“默认”,而不是“后端”,并且控制器是“后端”而不是“api”,这可能是什么原因造成的?

4

1 回答 1

0

看起来您在与请求匹配的这条路线之后定义了另一条更通用的路线。

您需要按照从最不具体到最具体的顺序定义您的路线,具体性通常会通过存在固定术语(如您的backend/api前缀)来提高。

请参阅Basic Rewrite Router Operation,特别是

注意:反向匹配

路由以相反的顺序匹配,因此请确保首先定义最通用的路由。

仅供参考:您不需要在路由前加上正斜杠

于 2011-08-25T05:31:42.070 回答