我意识到这可能不是一个明确的“问题/答案”问题,但我认为值得问。
在控制器中,似乎有三个选项可以访问Auth对象:
$这 - > Auth->用户 $这 - >用户 $用户
他们每个人都返回登录用户的记录,我看不出他们之间有多大区别。
现在,我突然发现,$ this->用户可能会有点困惑或不清楚是否在相关模型中工作$ this-> Posts-> User。
但除此之外,这三种选择之间是否存在差异?
答案 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
只是一个变量。