我在 AppController 中使用 $this->Auth->user('id') 时遇到了一个问题。它返回以下错误:错误:在 null 上调用成员函数 user()
现在我想做的是:我想强迫每个人都获得正确的个人资料。所以我在 AppController 中创建了函数 forceprofile()。我要求在过滤器功能之前在 AppControllers 中执行此功能。所以每次都会执行。当没有配置文件时,用户将从 forceprofile-function 重定向到一个表单,他可以在其中保存他的配置文件。
在这个 forceprofile-function 的第一行代码中,在一些注释之后,我将 UserID 放入一个变量中:
$userid = $this->Auth->user('id');
这是发生错误的地方。
比我想看看那里发生了什么,我把这条线换成了
debug($this->Auth->user('id')); die;
结果是:
整数(1)
所以实际上我在那里得到了一个非常合适的结果。
原始故障的堆栈没有提供任何有用的信息,它只是打印 [internal function] 没有任何上下文或代码......它打印 BaseErrorHandler。
任何人都知道,为什么 debug() 返回正确的结果而要求将 id 分配给变量不?
谢谢您的帮助。