我刚刚将我的 laravel 应用程序升级到多个身份验证守卫,如何获取代理或管理员身份验证用户的值



我正在为我的 laravel 应用程序使用多身份验证保护,一切似乎都运行良好......注册,登录等完美。但是我需要在我的视图中获取特定守卫的经过身份验证的用户的值,但它一直说未定义的属性

这是我模型的代码:

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
use IlluminateNotificationsNotifiable;
use IlluminateFoundationAuthUser 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&copy;&nbsp;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 AppHttpControllersAgentAuth;
use Auth;
use IlluminateHttpRequest;
use AppHttpControllersController;
use IlluminateFoundationAuthThrottlesLogins;
class LoginController extends Controller
{
/**
* Show the login form.
* 
* @return IlluminateHttpResponse
*/
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 IlluminateHttpRequest $request
* @return IlluminateHttpRedirectResponse
*/
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 IlluminateHttpRedirectResponse
*/
public function logout()
{
Auth::guard('agent')->logout();
return redirect()
->route('agent.login')
->with('status','Agent has been logged out!');
}

/**
* Validate the form data.
* 
* @param IlluminateHttpRequest $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 IlluminateHttpRedirectResponse
*/
private function loginFailed()
{
return redirect()
->back()
->withInput()
->with('error','Login failed, please try again!');
}
}

我想通了:{{ Auth::guard('agent'(->user((->firstname }}

最新更新