Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins Joomla JUser获得实例问题_Plugins_Joomla_Joomla1.5 - Fatal编程技术网

Plugins Joomla JUser获得实例问题

Plugins Joomla JUser获得实例问题,plugins,joomla,joomla1.5,Plugins,Joomla,Joomla1.5,我正在尝试制作一个身份验证插件JUser::getInstance()接受一个输入,它应该是id。是否有任何方法可以使用其他标识符获取用户的实例?例如用户名、电子邮件等。可能没有这样的方法。但是,如果您确定用户名或电子邮件是唯一的,则可以修改libraries/joomla/user/中的user.php文件,并在其中添加一个方法 getInstanceByEmail($email) { $query = "select id from jos_users where email=".

我正在尝试制作一个身份验证插件
JUser::getInstance()
接受一个输入,它应该是id。是否有任何方法可以使用其他标识符获取用户的实例?例如用户名、电子邮件等。

可能没有这样的方法。但是,如果您确定用户名或电子邮件是唯一的,则可以修改libraries/joomla/user/中的user.php文件,并在其中添加一个方法

getInstanceByEmail($email)
{
     $query = "select id from jos_users where email=".email;
     // use the code to get the id;
    return getInstance($id);
} // this is just a sample code of how it can be achieved

由于Joomla自己的身份验证是通过检查用户的用户名(当然还有密码)来完成的,因此它必须是唯一的。是的,你可以像@Rixius建议的那样做

以下是我的版本:

    // Get a database object
    $db     = JFactory::getDbo();
    $query  = $db->getQuery(true);

    $query->select('id, password');
    $query->from('#__users');
    $query->where('username=' . $db->Quote($credentials['username']));

    $db->setQuery($query);
    $result = $db->loadObject();
    $user = JFactory::getUser();

    if ($result)
    {
        $user = JUser::getInstance($result->id);
    }

谢谢,我不知道为什么我没有想到这一点>>