$Dispatcher = new Dispatcher();//无法找到控制器类


$Dispatcher = new Dispatcher(); // ImagesController Controller class could not be found

大家早上好。
error_logCakePHP正在指责以下内容:

28/11/2011 10:13:27 Error: [MissingControllerException] ImagesController Controller class could not be found.
# 0 /........./app/webroot/index.php (96): Dispatcher-> dispatch (Object (CakeRequest), Object (CakeResponse))
# 1 {main}

我不知道它是什么,因为我没有ImagesController但是有ImagesComponent

代码片段:

// app/Controller/BrandsController.php    
class BrandsController extends AppController {
public $components = array('Image');
...
public function add() {
    if ($this->request->is('post')) {
        if (!empty($this->request->data)) {
            if(!$this->request->data['Image']['name1']['error']) {
                $this->Brand->create();
                $image_path = $this->Image->uploadImage(
                    $this->request->data['Image'], 
                    'Brands',
                    array(
                        'folder'=>'upload/imagens/marcas',
                        'resize'=>175,
                        'thumb'=>0,
                        'original'=>false,
                        'name'=>$this->request->data['Brand']['brand']
                    )
                ); 
// app/Controller/Component/ImageComponent.php
class ImageComponent extends Component {
public $components = array('String');
function uploadImage($images, $controller, $data) {
    $erroimg = false;
    $isfile = false;
    ...

这个错误的原因是什么?
Sorry for my english

错误日志显示了导致错误的方法的堆栈跟踪。在你的例子中,Dispatcher::dispatch被调用。这个方法的文档为:

分派并调用给定的请求,将控制权移交给相关的控制器。如果控制器通过Controller::$autoRender设置为自动渲染,那么Dispatcher将渲染视图。CakePHP中的动作可以是控制器上没有在controller中声明的任何公共方法。如果您希望控制器方法是公共的,并且通过URL无法访问,那么使用_作为前缀。例如,public function _loadPosts(){} '将无法通过URL访问。私有和受保护的方法也不能通过URL访问。

如果没有找到给定名称的控制器,invoke()将抛出异常。
如果找到了控制器,但没有找到操作,将抛出异常。

在内部,dispatch_6调用Dispatcher::parseParams来解析请求,以确定要调用的控制器。如果已经配置了任何路由,parseParams将应用它们

对要发送的请求应用路由和附加参数。如果路由还没有被加载,它们就会被加载,并且会运行app/Config/Routes .php。

换句话说:您请求的URL是Dispatcher想要传递给Image控制器的。你没有imagcontroller这就是你得到错误的原因。所以,添加一个ImageController或者改变CakePHP路由的方式