如何编写类似于 Laravel 5.1 的 Laravel 5.8 控制器路由。

7 浏览
0 Comments

如何编写类似于 Laravel 5.1 的 Laravel 5.8 控制器路由。

在拥有超过20个控制器的情况下,为每个控制器的添加、编辑和删除(以及其他更多操作)设置路由非常困难。\n以下是我的laravel 5.1的routes.php文件:\n

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

\n是否有办法在laravel 5.8中支持这些路由?

0
0 Comments

问题出现的原因:在Laravel 5.8中,使用控制器和路由的方式与Laravel 5.1有所不同。

解决方法:根据Laravel 5.1的写法,调整Laravel 5.8的控制器和路由的写法。

文章内容如下:

在Laravel 5.8中,可以通过在数组中使用"as"来调用路由,就像在路由中使用一样,例如`{{route('claimsubmit')}}`。

相比之下,在Laravel 5.1中,可以使用以下方式来定义控制器和路由:

Route::resource('claimform',array('as'=>'claimform','uses'=>'UserController'));

但是,在Laravel 5.8中,我们需要做一些调整,以使控制器和路由的写法与Laravel 5.1相似。

解决方法是在路由中使用闭包函数,并在闭包函数中调用控制器的方法。以下是一个示例:

Route::get('claimform', function () {
    return App::make('UserController')->callAction('index', $parameters = array());
})->name('claimform.index');
Route::post('claimform', function () {
    return App::make('UserController')->callAction('store', $parameters = array());
})->name('claimform.store');
// 添加其他路由...

通过上述方法,我们可以将Laravel 5.8的控制器和路由的写法调整为与Laravel 5.1相似的方式。

0
0 Comments

Laravel 5.8版本中,controllers方法被弃用了。根据升级指南:

使用Route::controller的隐式控制器路由已被弃用。请在路由文件中使用显式路由注册。

1) 使用资源路由

如果你的控制器使用了标准的indexstoreshow等方法,你可以简单地使用资源路由。例如:

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

然而,如果你想排除某些方法,你可以将它们添加到资源路由中。例如:

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

2) 显式地声明路由

你可以按照Laravel 5.2的升级指南,显式地声明每个路由。

3) 创建宏

Laravel的路由器是可扩展的。这意味着你可以向其添加自己的方法。例如,在你的应用程序服务提供者中,你可以这样写:

Illuminate\Routing\Router::macro('controllers', function ($routes) {
    // 创建你自己的控制器方法的实现。
});

这允许你创建自己的controllers方法的实现,这意味着你不需要修改你的路由或控制器,但你可能需要深入研究Laravel的路由处理,以了解如何实现这一点。

希望这能帮到你。

好的...我会设置我的路由。

为什么?为什么?Laravel开发者,你们本应该“照亮”Web开发,而不是通过删除有用的功能来使它更加困难。

0
0 Comments

问题出现的原因是用户想要在Laravel 5.8中编写类似于Laravel 5.1的控制器路由。解决方法是使用资源控制器(Resource Controller)并在routes/web.php中实现。这将自动生成路由的名称。如果要排除控制器资源的show方法,可以在except方法中添加数组。如果只想获取选定的选项,可以使用only。需要注意的是,应该使用routes/web.php而不是api/web.php。如果要创建一个资源控制器,可以使用php artisan make:controller TaxesController --resource命令。这将为您提供一个很好的CRUD模板。如果用户想要显式地定义控制器中要使用的函数,可以在资源中进行设置。但资源控制器与任何控制器不同,只有在控制器是资源控制器的情况下才能使用这个解决方法。

0