I’m trying to add a route to my application, so that I can use it with ajax calls.
Here is what I have in my 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"
When a ajax call is made, to /backend/api/SomeCommand, the following error is produced:
Message: Invalid controller specified (backend)
array (
'controller' => 'backend',
'action' => 'maestro',
'module' => 'default',
)
as you can see module has been set to “default”, instead of “backend”, and controller is “backend” instead of “api”, what could have caused this?
Looks like you’ve got another more generic route defined after this one that’s matching the request.
You need to define your routes in order of least to most specific, specificity usually being improved by the presence of fixed terms like your
backend/apiprefix.See Basic Rewrite Router Operation, in particular
FYI: You don’t need to prefix your routes with a forward-slash