У меня есть отдельный AppController для внешнего API для моего сайта.
Я могу нормально подключиться к API, используя Postman на моей локальной машине разработки, но как только я переместил файлы на тестовый сайт или на производственный сайт, я получаю 404 ошибки типа «Пользователи класса контроллера не могут быть найдены».
{
"message": "Controller class Users could not be found.",
"url": "/api/tv/users/index",
"code": 404,
"file": "/var/www/html/site/vendor/cakephp/cakephp/src/Http/ControllerFactory.php",
"line": 100
}
Ubuntu 16.04, Apache, PHP 7.
Код и среда на всех серверах (локальный dev, test и production) должны быть одинаковыми, но он работает только на локальной машине. Я даже не знаю, какой код отправлять, но вот некоторые:
Тестовый код Api / TV / UsersController:
namespace App\Controller\Api\TV;
class UsersController extends AppController
{
public function index()
{
$this->set([
'message' => 'Why wont you work?',
'_serialize' => [
'message'
]
]);
}
}
Маршруты:
Router::prefix('api', function(RouteBuilder $routes) {
$routes->connect('/v2', [
'controller' => 'users',
'action' => 'login',
'_method' => 'GET'
]);
...
$routes->fallbacks('DashedRoute');
});
Router::prefix('api/v3', function(RouteBuilder $routes) {
$routes->setExtensions(['json']);
$routes->fallbacks('DashedRoute');
});
Router::prefix('api/tv', function(RouteBuilder $routes) {
$routes->setExtensions(['json']);
$routes->fallbacks('DashedRoute');
});
Как видите, у меня есть несколько разных API с разными префиксами. Только последний не работает (кроме локально).
Я нахожусь в конце моего остроумия здесь. Я знаю ответ смотрит мне прямо в лицо, но мне нужен кто-то еще, чтобы указать мне на это.