我仍在尝试从CakePHP 1.3迁移到2.0
我有一个Controller UsersController及其模型用户。
User类有一些常量,我可以使用User :: constant从UsersController轻松访问。但对于CakePHP 2.0,它不起作用:我收到一条错误,指出找不到User类。它适用于我App::Import('Model', 'User');
。
答案 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');