Cakephp:$ this-> Auth-> user vs $ this-> User vs $ user

时间:2012-09-01 23:38:45

标签: cakephp authentication controller

我意识到这可能不是一个明确的“问题/答案”问题,但我认为值得问。

在控制器中,似乎有三个选项可以访问Auth对象:

$这 - > Auth->用户 $这 - >用户 $用户

他们每个人都返回登录用户的记录,我看不出他们之间有多大区别。

现在,我突然发现,$ this->用户可能会有点困惑或不清楚是否在相关模型中工作$ this-> Posts-> User。

但除此之外,这三种选择之间是否存在差异?

2 个答案:

答案 0 :(得分:3)

$this->Auth->user()从会话中返回当前经过身份验证的用户。

$this->User是一个模型,除非您使用会话数据(来自Session或Auth组件)来获取用户ID,否则您将无法获得当前经过身份验证的用户。无论哪种方式,您都必须查询每个请求以获取有关登录用户的信息。

$user ..只是一个变量。我不明白这是一个“访问Auth对象的选项”

如果您需要有关当前登录用户的信息,请使用$this->Auth->user();

答案 1 :(得分:0)

在cakephp 2中,您必须使用AuthComponent::user($user_field)来访问经过身份验证的用户数据,例如: 对于经过身份验证的用户的ID,您必须使用AuthComponent::user('id')

正如tirang所说,$this->User是一个模型而$user只是一个变量。