【问题标题】:Migration CakePHP 1.2 -> 1.3 : Problem loading models迁移 CakePHP 1.2 -> 1.3:加载模型时出现问题
【发布时间】:2010-11-30 12:45:55
【问题描述】:

我目前正在将一个工作应用程序从 CakePHP 1.2 迁移到 1.3。到目前为止,大多数事情看起来都很好,只是在 app_controller.php 中似乎没有正确加载某些模型。例如,我在

中包含了模型“message_thread.php”
var $uses = array('MessageThread');

但是当我尝试和

debug($this->MessageThread);

我得到了错误

Notice (8): Undefined property: ProjectsController::$MessageThread [APP/app_controller.php, line 415]

模型也加载到项目控制器中,但我不明白为什么在简单的调试中调用它($this->MessageThread);打电话。

这个问题破坏了以前工作的代码,所以

$this->MessageThread->create();

导致以下错误

Fatal error: Call to a member function create() on a non-object in

有什么想法吗?

【问题讨论】:

  • 在 AppModel 和 ConcreteModel 中声明 $uses 时,我在 1.3 中也遇到了类似的问题。
  • @sibidiba : $uses 数组必须在控制器中使用。
  • 是的,尝试在控制器中添加$uses,而不是在 AppController 中。
  • 使用 '$uses' 数组不是一个好习惯。始终使用关系或 loadModel。

标签: cakephp migration cakephp-1.3


【解决方案1】:

您可以在尝试时将模型加载到应用控制器中的所有控制器中。你用的是php5吗?如果是这样,在定义数组时 tru 使用 public 而不是 var 来查看数组是否正确。

public $uses = array('MessageThread');

根据其他 cmets,最好在每个特定控制器中加载模型。请让我知道这是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2022-01-13
    • 2017-03-01
    相关资源
    最近更新 更多