Laravel 5.5 类型错误:传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是一个实例

标签 laravel laravel-5

在我的 LoginController 中的 Auth 下,我使用了以下代码:

namespace App\Http\Controllers\Auth;

use App\Model\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use Hash;
use Auth;
use DB;
use App\Model\UserAdmin;

class LoginController extends Controller {
use AuthenticatesUsers;
public function __construct() {
        $this->middleware('guest')->except('logout');
    }

public function doLogin(Request $request) {
$userdata = array(
            'email' => Input::get('email'),
            'password' => Input::get('password'),
            'status' => '1',
        );
if (Auth::guard('admin')->attempt($userdata)) {
  return Redirect::intended('/administrator/dashboard')->with('successMessage', 'You have successfully logged in.');
}
}
}

并且在UserAdmin(模型)中的app/Model下如下:

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Config;
class UserAdmin extends Authenticatable {
protected $table = 'adminusers';
    public $timestamps = false;
    protected $fillable = ['firstName', 'lastName', 'email', 'company', 'website'];

    public function __construct() {
        parent::__construct(); // Don't forget this, you'll never know what's being done in the constructor of the parent class you extended
    }

}

提交登录详细信息后,它显示错误:

Type error: Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Model\UserAdmin given, called in /var/www/html/XXXXXX/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php on line 379

最佳答案

我想您需要将 Implements\Illuminate\Contracts\Auth\Authenticatable 添加到您的 UserAdmin 模型类定义中。

    class UserAdmin extends Model implements 
    \Illuminate\Contracts\Auth\Authenticatable

关于Laravel 5.5 类型错误:传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50463155/

相关文章:

database - 如何在 Laravel 中禁用枚举检查

php - Laravel-5 将模板渲染为字符串而不解析变量

laravel - 在 Laravel 中模拟数据以与 Vue.js 一起使用

javascript - 使用 laravel 后端 React Formik 文件上传

php - 从 div 获取表单输入 laravel 的内容

php - 使用 Ajax 和 Laravel 5.6 上传多个图像

database - Laravel 迁移是否应该用于更改实时列值?

laravel-5 - 在 Laravel 中保存与更新

laravel-5 - laravel 对于实时应用程序有什么好处?

php - 使用 2D 阵列在 Blade 中打印表格