我的网站管理部分使用CakePHP 3.2时出现问题。
这部分在本地的wamp上运行得很好但是当我将站点移动到apache服务器时,它停止了工作。我有此错误消息:
缺少Controller Cake \ Routing \ Exception \ MissingControllerException 错误:找不到DashboardController。错误:在文件中创建下面的类DashboardController:src / Controller / Admin / DashboardController.php
变量中的这个错误:
错误:不可序列化的对象 - Cake \ Routing \ Exception \ MissingControllerException。错误:在/data/vhosts/dev.droplet.ninja/htdev/vendor/cakephp/cakephp/src/Routing/Dispatcher.php,第79行中找不到控制器类仪表板
但是控制器存在于具有以下内容的正确路径中:
<?php
namespace App\Controller\Admin;
use App\Controller\AppController;
class DashboardController extends AppController
{
public function index()
{
}
}
我的routes.php中的前缀是:
// Admin namespace
Router::prefix('admin', function ($routes) {
$routes->connect('/', ['controller' => 'Dashboard', 'action' => 'index', 'dashboard']);
$routes->fallbacks('DashedRoute');
});
这些路线适用于网站的公共部分但不适用于此。它似乎可以读取前缀并尝试转到该文件,甚至要求我创建我已经拥有的完全相同的文件。唯一的错误就是为什么找不到他。
Controller名称也在:
src/Controller/Admin/DashboardController.php
我一直在寻找两个apach设置之间的差异而没有找到什么可以使cakePhp有这种行为。
你知道吗?谢谢
答案 0 :(得分:0)
有很多原因可能使其不起作用。就我而言,这是因为必须清除旧的路由缓存。
bin/cake cache clear _cake_routes_
您可以通过运行bin/cake cache list_prefixes
获取缓存前缀列表。