php - Laravel:登录后的身份验证类不起作用
问题描述
我正在使用 Laravel 5.7。我被困在一件事上。重定向到下一页后,我无法获取登录的用户属性。
Auth::user()->id
返回我获取未定义的未知属性的错误。
Auth::check()
还给我false
。我在堆栈和其他平台上检查了很多问题,但没有一个能解决我的问题。
这是我迄今为止尝试过的:查看:
<form method="POST" action="">
@csrf
<div class="form-group {{ $errors->has('email') ? ' has-error' : '' }}">
<label>{{ __('lang.email_address') }}</label>
<input type="email" name="email" value="{{ old('email') }}" class="form-control" placeholder="{{ __('lang.email') }}">
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="form-group {{ $errors->has('password') ? ' has-error' : '' }}">
<label>{{ __('lang.password') }}</label>
<input type="password" name="password" class="form-control" placeholder="{{ __('lang.password') }}">
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
<div class="checkbox">
<label>
<input type="checkbox" name="remember_me" > {{ __('lang.remember_me') }}
</label>
</div>
<button type="submit" class="btn btn-warning btn-flat m-b-30 m-t-30 bg-login"> {{ __('lang.sign_in') }}</button>
<hr/>
<div class="register-link m-t-15 text-center">
<p>
{{ __('lang.forgot_your_password') }} <a href="{{Url('admin/forget-password')}}"> {{ __('lang.click_to_reset') }}</a>
</p>
</div>
</form>
控制器:
public function postLogin(Request $request) {
$validator = validator($request->all(),[
'email'=>'required|email',
'password'=>'required'
]);
if($validator->fails()) {
return Redirect::back()->withInput()->withErrors($validator);
}
$user = User::where('role_id', User::ROLE_ADMIN)->where('email', $request->input('email'))->first();
if(!empty($user)){
$userdata = array(
'email'=>$request->input('email'),
'password'=>$request->input('password')
);
if(Auth::attempt($userdata)) {
return redirect('/admin')->with('success', trans('lang.login_success'));
} else {
return redirect('/admin/login')->withInput()->with('error', trans('lang.incorrect_email_password'));
}
}else{
return redirect('/admin/login')->with('error',trans('lang.you_are_not_allowed_action'));
}
}
我正在重定向到管理页面,但它给出了 Auth 类的错误。
解决方案
您没有在控制器中定义 Auth 类。像这样定义它:
<?php
namespace App\Http\Controllers;
use Auth;
推荐阅读
- javascript - 奇怪的 javascript 语法返回 {unsubscribe() {}};
- c# - 从 SQL Server 数据库的公历日期格式在 datagridview 中显示波斯日期格式
- json - 计算 jq 中处理的记录数
- angularjs - 角JS | 将另一个对象推送到数组后清理对象内容
- angularjs - md-select angular js 更新多个值
- javascript - 如何在纯 javascript 中模拟 jQuery $ 选择器?
- c# - 在创作和重构时,如何在 Visual Studio 2017 中将所有属性访问器(包括右大括号)全部放在一行上?
- ios - 如何在不重新加载标题的情况下重新加载 UICollectionView 中的单元格?
- hibernate - 无法获取任何字段
- html - 无法在不同位置对齐 div 和其他内部标签