0

很抱歉这篇冗长的帖子。我尽量把我的问题具体化。我在将 cakephp1.2 站点迁移到 cakephp2.x 时遇到问题。我是 cakephp 新手,已阅读并遵循Cakephp 网站上的迁移手册和文档。

到目前为止一切顺利,但我只能查看网站的徽标和背景,但没有加载任何内容。而且我还收到一个错误:

发生内部错误。 找不到组件类 XAjaxComponent

在堆栈跟踪中:

“CORE/Cake/Controller/ComponentCollection.php 第 53 行 → ComponentCollection->load(string, array) 'XAjax' array()”

我没有在手册和网站上看到并找到任何 XAjax 信息。以前的开发人员已将 XAjax 作为组件数组包含在 AppController 中。

public $components = array( 0 => 'RequestHandler', 1 => 'Security', 2 => 'Auth',  3 => 'XAjax', 4=> 'DebugKit.Toolbar', 5 => 'Cookie', 6 => 'Session' );

这里某处的一个线程中,我读到XAjax不再被积极维护(最后一次更新是在 2012 年并且仍处于测试阶段)?并建议使用像 jQuery 这样的替代品?

当我浏览应用程序文件时,我发现 XAjax 用于调用以下函数(下面不分先后顺序):

$this->XAjax->autocomplete( $param_encode, $param_hash, $conditions );
$this->XAjax->flashuploadset($this->request->data);
$this->XAjax->normalupload($this->request->data, false);
$this->XAjax->flashuploadset($this->request->data);

这些与表格有关。对于要调用的类,我在任何地方都找不到任何 XAjax 函数或任何 XAjax 插件或组件。实际上我对 XAjax 不是很熟悉。

我的问题是,如果我仍然想在我的 cakephp 站点中实现 XAjax,那么我应该如何做到最好?

任何形式的帮助或建议将不胜感激。谢谢!

4

1 回答 1

3

(CakePHP 3.0) 如果您使用自定义组件(或像我一样编写自己的组件),您需要在控制器顶部指定命名空间,并告诉您的组件在哪里可以找到 Component 类。我在我的应用程序中收到了类似的错误:

缺少组件错误:找不到超级组件。

错误:在以下文件中创建类 SuperComponent:src/Controller/Component/SuperComponent.php

<?php
class SuperComponent extends Component {

}

文件 src/Controller/Component/SuperComponent.php 已经存在,但我需要在顶部添加这些行(在

namespace App\Controller\Component;
use Cake\Controller\Component;
于 2014-08-05T16:02:11.977 回答