我正在尝试使用cakephp 3实现REST api。
为了给出一个容易重现的问题示例,我先从cakephp 3.1.11的全新安装开始。 在config / routes.php中,我添加:
Router::prefix('/api', function ($routes) {
$routes->fallbacks('DashedRoute');
});
如果我访问http://mysite/prefixtest/api/Accounts
我得到(预期)"缺少控制器错误":
Error: AccountsController could not be found.
Error: Create the class AccountsController below in file: src/Controller//Api/AccountsController.php
<?php
namespace App\Controller\\Api;
use App\Controller\AppController;
class AccountsController extends AppController
{
}
注意路径中的双斜线和命名空间中的双反斜杠。
使用建议的代码在src/Controller/Api/AccountsController.php
(路径中的单个/)中创建AccountsController会导致错误:
Error: syntax error, unexpected '\' (T_NS_SEPARATOR), expecting identifier (T_STRING)
File src/Controller/Api/AccountsController.php
Line: 2
不太令人惊讶,因为在php中不允许命名空间中的双反斜杠。 删除额外的反斜杠会让我回到&#34;缺少控制器错误&#34;,可能因为控制器不在cakephp所期望的命名空间中。
我在这里做错了什么?