首页 > 其他分享 > Laravel — P54:路由组 — 中间件和控制器

Laravel — P54:路由组 — 中间件和控制器

时间:2023-02-12 14:34:39浏览次数:98  
标签:Laravel function get Route 中间件 P54 class PersonalCarController

我想在​​web.php​​​文件中提及的最后一个主题是路由组。考虑到还没有触及​​api.php​​也经常使用的文件,还没有完全讨论完路由。

将中间件应用于组

要将中间件应用于特定组,您只需使用该​​Route::middleware​​​方法,添加要应用的特定中间件,链接到一个​​group​​方法并传递一个匿名函数,其中包含应该应用中间件的各种路由。

在上一篇文章中看到了将中间件应用于组的示例。

Route::middleware(['throttle:web'])->group(function () {
Route::get('/throttle-test-1', function() {
return "Throttle Test 1";
});

Route::get('/throttle-test-2', function() {
return "Throttle Test 2";
});
});

如果想将额外的应用​​middleware​​​到组中,只需将额外的项目添加到​​middleware​​​数组中。例如,假设​​​auth​​也想追加。

Route :: middleware ([ 'throttle:web' , 'auth' ])-> group ( function ( ) { 
Route :: get ( '/throttle-test-3' , function ( ) {
return "Throttle Test 3" ;
});

Route :: get ( '/throttle-test-4' , function ( ) {
return "Throttle Test 4" ;
});
});

如果现在访问任何一条路由,都会收到错误消息,因为还没有实现身份验证。但是,确实看到中间件正在运行。它正在寻找​​login​​​中的路线​​app/Http/Middleware/Authenticate.php​​。

  Laravel — P54:路由组 — 中间件和控制器_Test

中间件是按顺序执行的,也就是说对于​​[‘throttle:web’, ‘auth’]​​​,​​throttle:web​​​中间件会先执行,然后是​​auth​​。

控制器

您可能还记得汽车项目中的以下示例:

Route::prefix('/personalcars')->group(function() {
Route::get('/', [PersonalCarController::class, 'index']);
Route::get('/create', [PersonalCarController::class, 'create']);
Route::post('/', [PersonalCarController::class, 'store']);
Route::get('/{id}', [PersonalCarController::class, 'show']);
Route::get('/{id}/edit', [PersonalCarController::class, 'edit']);
Route::put('/{id}', [PersonalCarController::class, 'update']);
Route::delete('/{id}', [PersonalCarController::class, 'destroy']);
});

对于每条路由,了​​PersonalCarController::class​​​. 这似乎是一大堆重复。可以从那里抽出​​PersonalCarController​​课程并将其应用于整个小组。

Route::controller(PersonalCarController::class)->group(function () {
Route::get('/', 'index');
Route::get('/create', 'create');
Route::post('/', 'store');
Route::get('/{id}', 'show');
Route::get('/{id}/edit', 'edit');
Route::put('/{id}', 'update');
Route::delete('/{id}', 'destroy');
});

这看起来干净多了。在这种情况下,如果我们需要修改控制器名称,我们只需在一个地方进行即可。

这就是路线。接下来我们将进入一些额外的 Laravel 概念。我们肯定会很快重新访问中间件。

标签:Laravel,function,get,Route,中间件,P54,class,PersonalCarController
From: https://blog.51cto.com/u_1213352/6052057

相关文章

  • Laravel — P53:速率限制
    对于眼尖的读者,您可能已经注意到我们上一篇文章中调用​​configureRateLimiting​​​的方法。​​RouteServiceProvider​​protectedfunctionconfigureRateLimiting(){......
  • Laravel — P52:显式路由模型绑定
    什么时候需要显式绑定模型与使用Laravel的隐式绑定?我经常发现的一个常见问题没有适当或足够简单的回答。因此,我认为它没有像应有的那样频繁使用。在前面的示例中,我们使用......
  • Laravel — P51:路由模型隐式绑定
    现在我们已经熟悉了依赖注入,我们还能用这个概念做什么呢?我们能否像模型一样将我们的模型“注入”​​User​​​到我们的路由中,然后在不实例化​​User​​模型的情况下利用......
  • Laravel — P50:路由和依赖注入
    我们在前几篇文章中介绍了一些依赖注入主题,但现在我们想开始更具体一些。我们终于进入了Laravel的更高级部分,并将开始关注Laravel特定领域内的特定主题。接下来的几篇文......
  • Laravel — P49:依赖注入
    我希望上一篇文章有意义。依赖注入确实是一个简单的概念。我觉得在你说你知道“Laravel中的依赖注入”之前,你应该完整地理解它。在我们再次进入依赖注入之前,你应该了解Lar......
  • Laravel — P48:依赖注入概念(高级 PHP 概念)
    在你的Laravel职业生涯中,你会多次听到“依赖注入”这个词,所以你不妨熟悉一下它。在我们进入Laravel之前,让我们看看依赖注入作为PHP(或任何编程语言)中的一个概念。我们应......
  • Laravel — P55:路由中的软删除模型
    完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了Laravel中一些比......
  • [学习笔记] CentOS + .Net后端常用的中间件工具安装
    Redis5.0+官方文档:https://redis.io/download/#redis-downloadssudoyuminstallredisRabbitMQ3.7.11+官方文档:https://www.rabbitmq.com/install-rpm.html配置安......
  • laravel groupby 报错
    报错信息laravelwhichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by关闭严格模式:修改app......
  • 基于zookeeper的kafka中间件
    一、Zookeeper概述1、Zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。2、Zookeeper工作机制Zookeeper从设计模式角度来理解:是......