[英]Laravel: Auth class after login is not working
我正在使用 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;
您需要像这样在控制器顶部定义 use Auth:
<?php
namespace App\Http\Controllers;
use Auth;
use Illuminate\Http\Request;
Auth 类可能有问题,因此请尝试使用以下代码之一
\Auth::check()
\Auth::user()->id
或者
auth()->check()
auth()->user()->id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.