Я пытаюсь создать RESTful API с помощью Cakephp 3.6.2. После Официальный маршрутный документ я получил ошибку в формате JSON, как показано ниже:
{
"message": "Controller class Stock could not be found.",
"url": "/stock/index.json",
"code": 404,
"file": "{MY_CAKEPHP_DIRECTORY}/vendor/cakephp/cakephp/src/Http/ControllerFactory.php",
"line": 105
}
Если вместо использования /stock/index.json, но /stock/index будет отображать нормальную страницу, как на скриншоте.
Обычный просмотр индекса акций
/config/routes.php
<?php
Router::defaultRouteClass(DashedRoute::class);
Router::extensions(['json']);
Router::scope('/api', function (RouteBuilder $routes) {
$routes->resources('Stock');
});
Router::scope('/', function (RouteBuilder $routes) {
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
$routes->fallbacks(DashedRoute::class);
});
Plugin::routes();
/src/Controller/StockController.php
<?php
namespace App\Controller;
use Cake\Core\Configure;
use Cake\Http\Exception\ForbiddenException;
use Cake\Http\Exception\NotFoundException;
use Cake\View\Exception\MissingTemplateException;
class StockController extends AppController {
public function index() {
$stock = ['test' => str_repeat('a', 11)];
$this->set(compact('stock'));
}
}
Спасибо, исправлено. Оцените ваш комментарий, когда наберется «репутации».






Часть
/apiотсутствует в вашем URL-адресе запроса.