CakePHP 2.0无法从自己的Controller访问Model

时间:2012-01-13 14:56:03

标签: cakephp cakephp-2.0

我仍在尝试从CakePHP 1.3迁移到2.0

我有一个Controller UsersController及其模型用户。 User类有一些常量,我可以使用User :: constant从UsersController轻松访问。但对于CakePHP 2.0,它不起作用:我收到一条错误,指出找不到User类。它适用于我App::Import('Model', 'User');

5 个答案:

答案 0 :(得分:4)

这肯定与他们在2.0中内置的延迟加载有关! 你只需要告诉这个文件它有其他依赖

在UserController文件的最顶部执行此操作:

<?php
App::uses('User', 'Model');

然后一切正常

答案 1 :(得分:0)

您可以尝试设置控制器名称(在UsersController中):

var $name = 'Users';

或使用“使用”var(在其他控制器中:

public $uses = array('User');

这不起作用吗?

答案 2 :(得分:0)

您是否声明了模型的名称?

class User extends AppModel {
    public $name = 'User';
}

您的UsersController中是否有其他变量?

答案 3 :(得分:0)

我在模型中设置变量如下:

//Person model
public $genders = array('m' => 'male', 'f' => 'female');

然后从控制器那里得到它们:

//People controller
$genders = $this->Person->genders;

无需特殊代码。 (这是你在说什么吗?)

另外,我不认为你需要将$name变量设置在任何地方 - 我认为这仅适用于PHP 4.(在那部分不是100%,但......我从来没有再设置一下,我的Cake2应用运行良好)

答案 4 :(得分:0)

你必须像这样加载模型:

$this->loadModel('User');