如何编写类似于laravel 5.1的laravel 5.8控制器路线

时间:2019-06-26 08:05:45

标签: laravel laravel-5.1 laravel-5.8

拥有20多个控制器。设置每个路由的添加,编辑和删除非常困难(还有更多操作)。

这是我的laravel 5.1 route.php:

Route::controllers([
  'user' => 'UserController',
  'taxes' => 'TaxController',
]);

laravel 5.8中有什么方法可以支持这些路线吗?

3 个答案:

答案 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'); 

Resource Controller with Action

编辑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的隐式控制器路由已被弃用。请在您的路线文件中使用明确的路线注册。

1)使用资源路由

假设您的控制器使用标准的indexstoreshow等方法,则可以简单地使用资源路由。例如:

Route::resource('user', 'UserController');

但是,如果要排除某些方法,可以将它们添加到资源中。例如:

Route::resource('user', 'UserController', ['except' => 'show']);

2)明确声明路由

您可以按照上面的Laravel 5.2升级指南进行操作,而不必显式声明每个路由。

3)创建一个宏

Laravel路由器是Macroable。这意味着您可以向其中添加自己的方法。例如,在您的应用服务提供商中,您可能会拥有以下内容:

Illuminate\Routing\Router::macro('controllers', function ($routes) {
    // Create your own implementation of the controllers method.
});

这使您可以创建自己的controllers方法的实现,这意味着您无需更改路线或控制器,但是您可能需要深入研究Laravel的路线处理以了解如何实施。

我希望这会有所帮助。