在CakePHP 3.2

时间:2016-11-10 19:57:29

标签: php php-5.6 cakephp-3.2

我的网站管理部分使用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有这种行为。

你知道吗?

谢谢

1 个答案:

答案 0 :(得分:0)

有很多原因可能使其不起作用。就我而言,这是因为必须清除旧的路由缓存。

bin/cake cache clear _cake_routes_

您可以通过运行bin/cake cache list_prefixes获取缓存前缀列表。

更多信息:/3.0/en/console-and-shells/cache.html