cakephp在手动登录时添加关联模型

cakephp在手动登录时添加关联模型,cakephp,authentication,model-associations,Cakephp,Authentication,Model Associations,在cakephp中,我有两个模型User和Account,User belongsTo-Accountmodel,现在通过cakephpusers-controller->login方法登录,关联的表自动添加到会话变量中,但当我通过$this->Auth->login($User['User')手动登录时仅在会话变量中添加用户模型数据,如何在手动登录时实现帐户数据会话?使用$this->Auth->login($data)手动登录将使用$data填充会话,如文档中所述: 解决方案是登录所有需要的

在cakephp中,我有两个模型
User
Account
User belongsTo-Account
model,现在通过cakephp
users-controller->login
方法登录,关联的表自动添加到会话变量中,但当我通过
$this->Auth->login($User['User')手动登录时
仅在会话变量中添加用户模型数据,如何在手动登录时实现帐户数据会话?

使用
$this->Auth->login($data)手动登录
将使用
$data
填充会话,如文档中所述:

解决方案是登录所有需要的数据。就你而言:

$this->Auth->login($user);

其中
$user
包含帐户数据。

我找到了另一种方法,我只需要找到用户并通过以下方法登录:
$this->Auth->login($user)

,现在对于手动登录,我必须设置所有组件,以便使用
$this->Session->write('Auth.User',$User)
写入会话组件中的所有数据,该组件在会话中添加关联表。

您在UsersController中的登录方法是什么样的?另外,您使用的是什么版本的CakePHP?我使用的是CakePHP 2.3.0,我的登录方法是简单的CakePHP方法,它使用if($this->Auth->login())来登录用户,但帐户模型通过belongsTo关系连接,因此,在登录之后,帐户模型中的数据也添加到了会话中。我注意到这两种方法在生成会话方面存在差异,正常的
$this->Auth->login()
方法以数组的形式给出数组:-
数组('id'=>'39','username'=>'doctor','Account\u id'=>'3','Account=>数组('id'=>'3'、'Name'=>'Doctor'、'layout'=>'Doctor'),)
而手动登录
$this->Auth->login($user);
以这种形式给出数组:-
数组('user'-array('id'=>'39','username'=>'Doctor','account id'=>'3','account=>数组('id'=>'3','Name'=>'Doctor','layout'>'Doctor'),);
您可能需要摆弄数组才能得到想要的结果,即,
$loginda=$user['user'];$loginda['Account']=$user['Account'];$this->Auth->login($loginda);