laravel - 我刚刚将我的 laravel 应用程序升级到多个身份验证守卫,我如何获取代理或管理员身份验证用户的值
问题描述
我正在为我的 laravel 应用程序使用多身份验证保护,一切似乎都运行良好....注册、登录等完美。但我需要在我的视图中获取特定警卫的经过身份验证的用户的值,但它一直说未定义的属性
这是我的模型的代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Agent extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'firstname', 'lastname', 'aid', 'city', 'state', 'email', 'password', 'bankname', 'accountnumber',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
在我看来:
@extends('layouts.app')
@section('title')
OneNaira© Welcome Back {{ auth()->user()->firstname }}
@endsection
@section('footer')
<!--FOOTER-->
<div class="ui stackable pink inverted secondary pointing menu" id="footer">
<div class="ui container">
<a class="item">© OneNaira, 2019.</a>
<div class="right menu">
<a class="item">
<script>
var todaysDate = new Date();
document.write(todaysDate);
</script>
</a>
</div>
</div>
</div>
@endsection
对于登录控制器
<?php
namespace App\Http\Controllers\Agent\Auth;
use Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
class LoginController extends Controller
{
/**
* Show the login form.
*
* @return \Illuminate\Http\Response
*/
public function showLoginForm()
{
return view('agent.auth.login',[
'title' => 'Welcome Back, Sign Into Your OneNaira Initiative Agent Dashboard',
'loginRoute' => 'agent.login',
'forgotPasswordRoute' => 'agent.password.request',
]);
}
/**
* Login the agent.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*/
public function login(Request $request)
{
$this->validator($request);
if(Auth::guard('agent')->attempt($request->only('aid','password'),$request->filled('remember'))){
//Authentication passed...
return redirect()
->intended(route('agent.dashboard'));
}
//Authentication failed...
return $this->loginFailed();
}
/**
* Logout the agent.
*
* @return \Illuminate\Http\RedirectResponse
*/
public function logout()
{
Auth::guard('agent')->logout();
return redirect()
->route('agent.login')
->with('status','Agent has been logged out!');
}
/**
* Validate the form data.
*
* @param \Illuminate\Http\Request $request
* @return
*/
private function validator(Request $request)
{
//validation rules.
$rules = [
'aid' => 'required|exists:agents,aid|min:8|max:191',
'password' => 'required|string|min:4|max:255',
];
//custom validation error messages.
$messages = [
'aid.exists' => 'These credentials do not match our records.',
];
//validate the request.
$request->validate($rules,$messages);
}
/**
* Redirect back after a failed login.
*
* @return \Illuminate\Http\RedirectResponse
*/
private function loginFailed()
{
return redirect()
->back()
->withInput()
->with('error','Login failed, please try again!');
}
}
解决方案
我想通了:{{ Auth::guard('agent')->user()->firstname }}
推荐阅读
- php - 尝试使用 codeigniter 中的取消链接删除图像时权限被拒绝
- python - Tkinter 图像不显示
- python - 类设计 - 从基类初始化返回子类
- mobile - SSRS 移动报告显示日期
- android - 使用 Xamarin.Android 的 Oreo 设备的应用程序因 java.lang.UnsatisfiedLinkError 而崩溃
- javascript - 如何在具有去抖动的方法中访问事件对象 - Vue
- typescript - 键入'字符串 | AddressInfo' 没有属性 'port' 并且没有字符串索引签名
- python - Python3字符串格式赋值导致赋值前引用
- android - 如何在单击时启动列表视图项?
- outlook - 如何设置规则以在 Outlook 2016 Mac 版的垃圾箱中删除 30 天后的邮件?