【问题标题】:CakePHP 2.1 doesn't work on localhostCakePHP 2.1 在本地主机上不起作用
【发布时间】:2012-03-07 07:26:16
【问题描述】:

我在远程主机上部署了我的应用程序,一切正常。但是当我尝试在 localhost 上测试我的代码时,它给了我以下错误,而主机上的代码没有任何更改:

Fatal error: Class 'AppHelper' not found in [path]

我使用 CakePHP 2.1 和 MySQL 作为我的默认数据源。

我像连接到远程数据库一样连接到本地数据库(带有身份验证更改):

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'database',
    'prefix' => '',
    'encoding' => 'utf8',
);

为什么这在我的本地主机上不起作用?谢谢

【问题讨论】:

  • 有可能你有一个不在控制器 $helpers 数组中的助手?或者帮助者的路线错误
  • 我的助手数组看起来像public $helpers = array('Html', 'Form', 'Session', 'Js', 'Text', 'Time');。无论如何,问题是在我的远程主机上相同的代码可以正常工作。
  • 然后验证您的路线...远程!=本地主机...这是另一个环境:) 无论如何..有一个在 AppHelper 中扩展的类? (在助手中验证)如果有,请在助手中进行更改。从理论上讲,这个错误是由两个问题引起的,路径错误或助手文件夹中缺少助手
  • 我没有任何自定义助手。我添加的唯一路线是Router::parseExtensions('json');,因为我需要 JsonView。会不会是这个问题?
  • 想通了。我的应用程序中缺少 AppHelper 文件。我认为它包含在蛋糕核心中。感谢您的所有帮助。

标签: mysql cakephp localhost cakephp-2.1


【解决方案1】:

两种可能的情况: 要么您不知道 2.1 的 AppHelper 要求: http://book.cakephp.org/2.0/en/appendices/2-1-migration-guide.html

或者你忘记在你的类的最顶部声明​​助手:

 App::uses('AppHelper', 'View/Helper');

虽然如果你不运行任何单元测试,第二个是极不可能的。 所以我的赌注是第一个。

【讨论】:

  • 没错,我已经想通了,已经发在问题的cmets :) 还是谢谢你!
  • 啊,好的。但是您也应该将 uses 语句添加到您的帮助文件中。否则它将在测试用例上中断。
  • 我没有任何自定义帮助文件。这是我在AppHelper.php中添加的:App::uses('Helper', 'View'); class AppHelper extends Helper {}
猜你喜欢
  • 2015-02-25
  • 2011-02-15
  • 2015-03-19
  • 2018-01-02
  • 2017-07-22
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多