我在命名路由组中有一个资源控制器,如下所示:
Route::group(['middleware' => 'ldapauth', 'namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'admin.'], function () {
// other routes ...
Route::resource('institution', 'InstitutionController');
});
我得到了额外的"管理员"对于属于资源控制器路由的路由名称,请参见此处:
+-------------------------------------+--------------------------------+
| URI | Name |
+-------------------------------------+--------------------------------+
| admin | admin.dashboard |
| admin/email/{id} | admin.email.show |
| admin/institution | admin.admin.institution.index |
| admin/institution | admin.admin.institution.store |
| admin/institution/contact | admin.institution.contact |
| admin/institution/create | admin.admin.institution.create |
| admin/institution/{institution} | admin. |
| admin/institution/{institution} | admin.admin.institution.destroy|
| admin/institution/{institution} | admin.admin.institution.update |
| admin/institution/{institution} | admin.admin.institution.show |
| admin/institution/{institution}/edit| admin.admin.institution.edit |
任何指导都将不胜感激。我是否需要删除组外的资源控制器,然后重新应用中间件等?
编辑:我想在路由组中保留命名的'as' => 'admin.'
,因此我不需要为组中的所有路由添加前缀。这可能吗?
答案 0 :(得分:0)
管理这个的最好方法是,在控制器中传递中间件,向控制器添加一个构造,就像这样:
class InstitutionController extends Controller {
public function __construct()
{
$this->middleware('ldapauth');
}
}
之后您可以创建资源:
Route::resource('admin/institution', 'Admin\InstitutionController');
现在您可以使用以下方式访问路线:
{!! Form::open(['url' => route('admin.institution.contact')]) !!}
此外,您可以使用php artisan route:list
查看所有当前路线。你会看到类似的路由输出。