当我使用 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 提交表单?**

【问题讨论】:

您应该添加-&gt;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 登录时,如何使用名称路由提交表单?的主要内容,如果未能解决你的问题,请参考以下文章

具有相同角色的身份验证用户与Guard Laravel相同

Auth guard [:api] 没有定义?

如何在 wamp 中添加 Zend Guard 运行时

Laravel Blade If 语句在使用 Guard 进行身份验证检查时抛出非对象属性错误

Laravel AppServiceProvider Auth::guard('admin')->check() 不工作

使用 Spork 和 Guard 时启动错误