【发布时间】:2022-01-02 06:02:35
【问题描述】:
我制作了 Laravel 项目并安装了 Breeze 包以进行多重身份验证并创建一个警卫呼叫管理员以控制用户对仪表板的评估它工作正常这是路线
Route::get('/dashbord',[AdminController::class, 'Dashbord'])
->name('admin.dashbord')
->middleware('Admin');
Route::get('/profile/edit',[AdminProfileSettings::class, 'index'])
->name('admin.profile.settings')
->middleware('Admin');
这是中间件
public function handle(Request $request, Closure $next)
{
if(!Auth::guard('admin')->check()) {
return redirect()->route('login_form')->with('error','please Login First');
}
return $next($request);
}
此代码工作正常,但问题是当我登录仪表板并尝试将管理员 ID 获取到 admin.profile.settings 路由时它不会获取 ID,我通过使用像这样的 AdminProfileSettings 控制器传递了记录的管理员 ID
public function index()
{
$id=Auth::user()->id;
$adminData = Admin::find($id);
return view('admin.admin_profile_settings',compact('adminData'));
}
但是,当我尝试在 admin.admin_profile_settings 视图中访问它时,它会显示此错误:
试图获取非对象的属性“id”
但是,如果我使用$adminData = Admin::find(1);,它会毫无问题地获取 ID,但是当我尝试获取身份验证用户 ID 时,它会显示错误,如果我使用默认保护登录,则不会显示此错误,但它会得到 @来自用户表的 987654326@
【问题讨论】:
标签: laravel authentication breeze