我意识到这可能不是一个明确的“问题/答案”问题,但我认为值得一问。
在控制器中,似乎有三个选项可以访问 Auth 对象:
$this->Auth->用户 $this->用户 $user
他们每个人都返回登录用户的记录,我看不出他们之间有什么区别。
现在,我突然想到,如果在关联模型 $this->Posts->User 中工作,$this->User 可能会有点令人困惑或不清楚。
但除此之外,这三个选项之间有区别吗?
我意识到这可能不是一个明确的“问题/答案”问题,但我认为值得一问。
在控制器中,似乎有三个选项可以访问 Auth 对象:
$this->Auth->用户 $this->用户 $user
他们每个人都返回登录用户的记录,我看不出他们之间有什么区别。
现在,我突然想到,如果在关联模型 $this->Posts->User 中工作,$this->User 可能会有点令人困惑或不清楚。
但除此之外,这三个选项之间有区别吗?
$this->Auth->user()
从会话中返回当前经过身份验证的用户。
$this->User
是一个模型,除非您使用会话数据(来自 Session 或 Auth 组件)来获取用户 ID,否则您不会获得当前经过身份验证的用户。无论哪种方式,您都必须对每个请求进行查询以获取有关登录用户的信息。
$user
..只是一个变量。我不明白这是一个“访问 Auth 对象的选项”
如果您想要有关当前登录用户的信息,请使用$this->Auth->user();
在 cakephp 2 中,您必须使用AuthComponent::user($user_field)
来访问经过身份验证的用户数据,例如:对于经过身份验证的用户的 id,您必须使用AuthComponent::user('id')
。
正如tirang所说$this->User
,是一个模型,$user
只是一个变量。