I have a resource controller in a named route group, as follows:
Route::group(['middleware' => 'ldapauth', 'namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'admin.'], function () {
// other routes ...
Route::resource('institution', 'InstitutionController');
});
And I'm getting an extra "admin" for the route names belonging to the resource controller routes, see here:
+-------------------------------------+--------------------------------+
| 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 |
Any guidance would be appreciated. Do I need to remove the resource controller outside of the group then reapply middleware etc?
Edit: I would like to keep the named 'as' => 'admin.'
on the route group so I don't need to prefix all the routes in the group. So is this possible?
The best way to manage this is, passing middlewares in controller, add a construct to your controller, that would be like this:
class InstitutionController extends Controller {
public function __construct()
{
$this->middleware('ldapauth');
}
}
After that you can create resource:
Route::resource('admin/institution', 'Admin\InstitutionController');
Now you can access to route using:
{!! Form::open(['url' => route('admin.institution.contact')]) !!}
Also, you can see all the current routes with php artisan route:list
. And you see a similar ouput of routing.