Php 传递给Illumb\Auth\EloquentUserProvider::validateCredentials()的参数1必须是的实例
传递给Illumb\Auth\EloquentUserProvider::validateCredentials()的参数1必须是Illumb\Contracts\Auth\Authenticatable的实例,App\Models\User-given的实例,在第384行的D:\xampp\htdocs\backend\e-commerce\vendor\larvel\framework\src\illumb\Auth\SessionGuard.php中调用---- 我有这个问题,请帮帮我 我的模型页Php 传递给Illumb\Auth\EloquentUserProvider::validateCredentials()的参数1必须是的实例,php,laravel,Php,Laravel,传递给Illumb\Auth\EloquentUserProvider::validateCredentials()的参数1必须是Illumb\Contracts\Auth\Authenticatable的实例,App\Models\User-given的实例,在第384行的D:\xampp\htdocs\backend\e-commerce\vendor\larvel\framework\src\illumb\Auth\SessionGuard.php中调用---- 我有这个问题,请帮帮我 我
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
我的控制器
namespace App\Http\Controllers;
use App\Mail\UserRegisterMail;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Mail;
class UserController extends Controller
{
public function login(){
return view('user.login');
}
public function register(){
return view('user.register');
}
public function registerPost(Request $request){
$request->validate([
'ad' => 'required|max:60',
'email' => 'required|email',
'şifrə' => 'required|confirmed',
]);
$request->flash();
$user = User::create([
'name' => $request->ad,
'email' => $request->email,
'password' => Hash::make($request->şifrə),
'activation_code' => Str::random(60),
'active' => 0
]);
Mail::to($request->email)->send(new UserRegisterMail($user));
// auth()->login($user,true);
return redirect()->route('home');
}
public function activation($code){
$user = User::where('activation_code',$code)->first();
if(!is_null($user))
{
$user->activation_code = null;
$user->active = 1;
$user->save();
return redirect()->to('/')->with('message','Qeydiyyatınız tamamlandı');
}
}
public function loginPost(Request $request){
$request->validate([
'email'=>'required|email',
'şifrə'=>'required'
]);
if(Auth::attempt(['email'=>$request->email,'password'=>$request->şifrə],$request->has('xatirla')))
{
return redirect()->intended('/');
}else{
return redirect()->route('register');
}
}
}
将extends模型更改为extends Authenticatable
在您的模型中您应该在`受保护的$fillable=['name','email','password',]中添加
activation\u code
和active
字段在模型上。我不确定,但这可能是解决办法。我希望能成功。我尝试过将$fillable数组添加到此参数,但没有更改结果。您知道是哪一页触发了此错误吗?或者哪种方法?是loginPost
方法吗?是的,问题是loginPost方法嘿,虽然我认为这可能会有帮助,但解释一下为什么会有帮助以及区别是什么可能会让你的答案更好一些。