我一直在研究laravel并且一直在做一些路由。我只是想知道写这条路线的区别是:
route::get('roles/{id}/edit',rolesController@edit);
与
route::get('roles/edit/{id}',rolesController@edit);
一个区别是清晰可见的,即id变量的位置。无法弄清楚任何其他原因。请对此作出解释。
除了URL的实际外观之外,就框架而言,没有真正的区别。
我想这是使用任何一个时的偏好问题。也许,例如,如果您提供编辑用户个人资料和帖子的选项,这可能会派上用场,因为两者都是不同的路线,从技术上讲
没有不同。这取决于您如何构建路线。但请尝试使用laravel创建者推荐的最佳实践(https://laravel.com/docs/5.7/controllers#resource-controllers)。 而且我想要你注意你如何调用你的控制器。您应该使用CamelCase命名文件(https://github.com/alexeymezenin/laravel-best-practices/blob/master/README.md)。
没有区别,但你可能想看看reosource路线和控制器。基本上,laravel框架会自动为项目中可能需要的控制器创建路径和方法。例如:如果您创建这样的控制器:
php artisan make:controller RolesController --resource
并创建一个这样的资源路由:
Route::resource('/roles', 'RolesController ');
框架会自动为您创建此路线:
Verb Path Action Route Name
GET /roles index roles.index
GET /roles/create create roles.create
POST /roles store roles.store
GET /roles/{roles} show roles.show
GET /roles/{roles}/edit edit roles.edit
PUT|PATCH /roles/{roles} update roles.update
DELETE /roles/{roles} destroy roles.destroy
因此,您不必自己制定路线并询问自己是否正确。查看laravel官方文档以获取有关此内容的更多信息。