我正在尝试使用JFactory :: getUser()来获取某个用户的名称和用户名,但它会返回错误!
例如,当我写这篇文章时:
echo JFactory::getUser(645)->name;
它会返回此错误:
(!)SCREAM:忽略错误抑制 (!)致命错误:在第888行的D:\ wamp \ www \ libraries \ joomla \ user \ user.php中的非对象上调用成员函数load()
但是当我在那里输入我自己的id并且返回我的名字时它工作正常!
更多信息:
我在字段类型文件中使用此功能,并且我已经在同一网站中的另一个字段类型文件中以相同的方式使用它没有任何问题!它们之间的区别在于:我在自定义组件中使用它,但在com_categories组件中使用了它。
答案 0 :(得分:1)
我应该首先实例化一个用户对象。
$user = JFactory::getUser(646);
然后如果它不为空(即他/她存在)
做一个
echo $user->name;
答案 1 :(得分:1)
pcrikos是对的,你必须先创建User对象的实例。完成后,调用can然后在echo语句中对象属性。另请注意,不向该方法传递任何整数(数值)将利用当前用户会话作为用户状态,并将使用该用户ID。
//This will instance the user object of the current user state
$user = JFactory::getUser();
//This will instance the user object for a given user defined by passed id aregument
$user = JFactory::getUser(1);
实例化后,您可以调用任何方法属性来获取所搜索的数据。
echo $user->name;
echo $user->username;
echo $user->email;
另请注意,如果您要获取用户ACL,它实际上会以数组形式返回。您可以在此处查看完整的对象属性和示例:http://docs.joomla.org/Accessing_the_current_user_object