【发布时间】:2020-05-27 05:13:08
【问题描述】:
传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例,App\Models\User 的实例,在 D:\xampp\htdocs\backend\ 中调用e-commerce\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php 在第 384 行---- 我有这个问题请帮助我 我的模特页面
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');
}
}
}
【问题讨论】:
-
您应该在模型上的 `protected $fillable = [ 'name', 'email', 'password', ];` 中添加
activation_code和active字段。我不确定,但这可能是解决方案。我希望工作。 -
我尝试添加 $fillable 数组这个参数但没有改变结果
-
你知道是哪个页面触发了这个错误吗?还是什么方法?
-
是
loginPost方法吗? -
是的,问题是 loginPost 方法