当我使用 admin Guard 登录时,如何使用名称路由提交表单?
Posted
技术标签:
【中文标题】当我使用 admin Guard 登录时,如何使用名称路由提交表单?【英文标题】:How can i submit form using name route when i am logged in with admin guard? 【发布时间】:2020-08-04 16:52:04 【问题描述】:我使用了多重身份验证,我使用了资源控制器的路由
我在不同的命名空间中有两个同名的不同控制器
Route::namespace('Admin')->prefix('admin')->group(function()
Route::resource('test','HomeController');
);
Route::namespace('Vendor')->prefix('vendor')->group(function()
Route::resource('test','HomeController');
);
现在我有了管理员表单
<form action=" route('test.store') " method="post">
@csrf
<input type="text" name="name">
<input type="submit"/>
</form>
当我提交此表单时,它会重定向到供应商商店的控制器。
问。当我使用 admin Guard 登录时,如何使用 **name route 向 admin 命名空间的 HomeController 提交表单?**
【问题讨论】:
您应该添加->name('admin.')
,然后添加route('admin.test.store')
。我想这会解决这个问题。
是的,我想在完整的资源路线上这样做,这仅适用于单个路线。 @maartenpaauw
【参考方案1】:
我得到了解决方案,我们可以通过使用 'as' 和资源路由来区分两个控制器
Route::resource('test', 'HomeController',['as' => 'admin']);
之后我可以使用route(admin.test.index)
等路由名称
得到了引用 Laravel named route for resource controller
【讨论】:
以上是关于当我使用 admin Guard 登录时,如何使用名称路由提交表单?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Blade If 语句在使用 Guard 进行身份验证检查时抛出非对象属性错误
Laravel AppServiceProvider Auth::guard('admin')->check() 不工作