拥有20多个控制器。设置每个路由的添加,编辑和删除非常困难(还有更多操作)。
这是我的laravel 5.1 route.php:
Route::controllers([
'user' => 'UserController',
'taxes' => 'TaxController',
]);
laravel 5.8中有什么方法可以支持这些路线吗?
答案 0 :(得分:5)
您可以在数组中使用In,当您使用路由调用时。像{{route('claimsubmit')}}
Route::resource('claimform',array('as'=>'claimform','uses'=>'UserController@claimform');
答案 1 :(得分:4)
您可以使用Resource Controller并在route / web.php中实现。它将自动生成路线的名称
//web.php
Route::resource('user', 'UserController');
Route::resource('taxes', 'TaxController');
编辑1
如果要为资源排除控制器的show方法,则可以在except方法内添加数组。
Route::resource('taxes', 'TaxController', [
'except' => ['show']
]);
此外,如果只想获取选定的选项,则可以仅使用 。
Route::resource('taxes', 'TaxController', [
'only' => ['index', 'create', 'store', 'edit']
]);
答案 2 :(得分:2)
Laravel 5.2中不推荐使用controllers
方法。在升级指南中:
使用Route :: controller的隐式控制器路由已被弃用。请在您的路线文件中使用明确的路线注册。
假设您的控制器使用标准的index
,store
,show
等方法,则可以简单地使用资源路由。例如:
Route::resource('user', 'UserController');
但是,如果要排除某些方法,可以将它们添加到资源中。例如:
Route::resource('user', 'UserController', ['except' => 'show']);
您可以按照上面的Laravel 5.2升级指南进行操作,而不必显式声明每个路由。
Laravel路由器是Macroable。这意味着您可以向其中添加自己的方法。例如,在您的应用服务提供商中,您可能会拥有以下内容:
Illuminate\Routing\Router::macro('controllers', function ($routes) {
// Create your own implementation of the controllers method.
});
这使您可以创建自己的controllers
方法的实现,这意味着您无需更改路线或控制器,但是您可能需要深入研究Laravel的路线处理以了解如何实施。
我希望这会有所帮助。