Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Laravel 5.3未定义Auth::login和Auth::loginUsingId_Laravel - Fatal编程技术网

Laravel 5.3未定义Auth::login和Auth::loginUsingId

Laravel 5.3未定义Auth::login和Auth::loginUsingId,laravel,Laravel,我创建了一个名为ADMIN_USER的新表,其中包含用于身份验证的用户名和密码字段,但当我尝试执行登录时,Hash::check按预期返回true,而Auth::trunt返回false 然后,我试图记住Hash::check或Auth::trunt之前登录的用户,php回复时出现错误:调用未定义的函数App\Http\Controllers\Auth\loginUsingId() Hash::check下的Auth:login不记得任何东西 以下是我在LoginController中的身份验证

我创建了一个名为ADMIN_USER的新表,其中包含用于身份验证的用户名和密码字段,但当我尝试执行登录时,Hash::check按预期返回true,而Auth::trunt返回false

然后,我试图记住Hash::check或Auth::trunt之前登录的用户,php回复时出现错误:调用未定义的函数App\Http\Controllers\Auth\loginUsingId()

Hash::check下的Auth:login不记得任何东西

以下是我在LoginController中的身份验证方法:

public function authenticate(Request $request)
{
    $data = $request->all();
    $user = new User();
    $user = $user->where('USERNAME' , $data['inputUsername'])->first();
    Log::info($user->PASSWORD);
    Log::info($data['inputPassword']);

    Auth:loginUsingId($user->id);

    /*
    if(Auth::attempt(array('USERNAME' => $data['inputUsername'], 'PASSWORD' => $data['inputPassword']))){
        return redirect($this->home); 
    }else{
        return redirect($this->index); 
    }
    */

    if(Hash::check($data['inputPassword'], $user->PASSWORD)){
         Auth::loginUsingId($user->id);
        return redirect($this->home); 
    }else{
        return redirect($this->index); 
    }

}

Laravel预先配置了一个用户和身份验证表,用于存储会话信息、用户、加密密码等,因此无需创建自己的表。有关这方面的更多信息,请参阅

Laravel配置将不知道如何与管理员用户通信,除非您修改您的authenticate类

查看应用程序的database/migrations文件夹,您会发现一个timestamp_create_users_table.php文件,其中包含一个迁移,用于创建一个带有id、名称、电子邮件、密码、令牌和时间戳的用户表

如果没有看到,请运行:

php artisan make:auth
一旦你在你的migrations文件夹中有了这个迁移文件,就可以运行了

php artisan migrate
一旦运行,检查您的数据库,您应该会看到一个users表。我很确定这会解决你的身份验证问题

我建议你浏览一些关于laracasts的免费课程。它应该能帮助你很快地跟上进度


希望这有帮助。

我通过将数据库中的密码更改为密码,将ID更改为ID解决了问题。

您已经迁移了Laravel附带的迁移吗?您的数据库当前有哪些表?系统是新创建的,我手动创建了ADMIN_USER表,并在USER类中添加了$table属性,其中$fillable数组更改为相应的列名是否需要更改迁移并执行一些php命令?我相信下面的答案应该会对您有所帮助。我通过执行迁移和更改PASSWORD列改为PASSWORD,现在Auth::trunt按预期返回true,但我无法使用Auth::user()检索用户数据。是否添加了use Auth;您试图通过哪个控制器访问数据?您是否以访客身份登录或访问该页面?运行dd(Auth::check());检查。