Cakephp 2.2 在CakePhp 2.2.3中访问用户模型

Cakephp 2.2 在CakePhp 2.2.3中访问用户模型,cakephp-2.2,Cakephp 2.2,我正在从Cake 1.3升级到最新的Cake 2 我曾经通过应用程序组件访问用户模型,如下所示: $this->Auth->userModel-> 然而,这个领域已经不存在了 还有别的选择吗 我也试过了 App::uses('User', 'Model'); $user = new User(); 但是我得到了错误 Class 'AppModel' not found 有没有其他访问用户模型的方法?通过访问用户(或任何)模型,您到底想做什么 如果在控制器中,您可以使用控制

我正在从Cake 1.3升级到最新的Cake 2

我曾经通过应用程序组件访问用户模型,如下所示:

$this->Auth->userModel->
然而,这个领域已经不存在了

还有别的选择吗

我也试过了

App::uses('User', 'Model');
$user = new User();
但是我得到了错误

Class 'AppModel' not found

有没有其他访问用户模型的方法?

通过访问用户(或任何)模型,您到底想做什么

如果在控制器中,您可以使用控制器的
$uses
变量添加模型:

public $uses = array('User');
您还可以通过“跳过模型关联”来访问任何模型。例如,如果您在
userscoontroller
中,并且希望使用
costude
模型,其中
User有许多costude
并且
costude
不在控制器的
$uses
属性中,则可以执行以下操作:

$this->User->Costume->find();
必须存在模型关联,否则它将不起作用。这是可能的,因为用户模型与它的任何关联模型都有内部关联


由于组件包装控制器,您应该能够在那里完成这项工作,或者应该有对控制器的引用,您可以从中调用:
User->costment->find()但是在
组件中
您最好从
控制器
向其传递数据,而不是尝试从中调用模型。

我尝试从与用户模型关联的模型访问数据,就像在您的示例中尝试访问User->costude->find()。但是,这是AppController上的一个方法,因此我不能保证我当前在UsersController上,因此用户模型不一定绑定到控制器。用户模型将始终绑定到UsersController。如果您试图访问AppController中的方法,那么它也将在用户模型中可用,因为它扩展了AppController,因此:
$this->User->methodName()
可以工作。在
组件中
您最好从
控制器
向其传递数据,而不是试图从中调用模型。好了,现在我明白了。解决方案是在app controller上使用“public$uses”。谢谢,这将绑定您在
AppController的
$uses
中包含的模型,该模型将绑定到应用程序中的每个控制器。您只能将其绑定到希望使用它的控制器。正如我已经解释过的,还有另一种方法,如果你有一个
Model1到Model2
关联,并且你已经在
Controller1
中包含了
Model1
,你可以通过
Model1
调用
Model2
$this->Model1->Model2>find()。但我想从每个控制器访问用户模型。