Я хочу направить пользователя на его панель, но перед этим мне нужна его роль.Я не получаю роль от своего промежуточного программного обеспечения.Я попытался установить связь между таблицами, но она не работает.
Промежуточное ПО CustomerAuth
<?php
namespace App\Http\Middleware;
use Closure;
use App\Http\Requests\Request;
class CustomerAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!auth()->check()) {
return $next($request);
}
else{
dd(auth()->user()->roles);
foreach (auth()->user()->roles as $role){
if ($role->slug == 'admin' || $role->slug == 'product-admin' || $role->slug == 'logistic-admin' ){
return redirect()->route('customer.login-reset');
}
}
foreach (auth()->user()->roles as $role){
if ($role->slug == 'customer' ){
return redirect()->route('customer.dashboard');
}
}
}
}
}
Модель пользователя
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
class User extends BaseModel
{
protected $table='users';
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username','name', 'email', 'password','profile_image','role_id'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function roles(){
return $this->belongsToMany(Role::class);
}
}
Ошибка , с которой я сталкиваюсь, пытается получить свойство не-объекта.