route delete删除路由_Laravel 8的路由

b03dd7971278e93786a37592a6825901.png

1. 什么是路由

路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。简单来说路由就是一个访问到控制器方法的一个Url地址。

2. 路由的创建方式

    Route::请求方式('请求的url', 匿名函数或者响应的控制器方法);

例如:

Route::get('foo', function () {    return 'Hello World';});

路由允许的请求方式分为下面六种:

Route::get($uri, $callback);Route::post($uri, $callback);Route::put($uri, $callback);Route::patch($uri, $callback);Route::delete($uri, $callback);Route::options($uri, $callback);

有的时候你可能需要注册一个可响应多个 HTTP 请求的路由,这时你可以使用 match 方法,也可以使用 any 方法注册一个实现响应所有 HTTP 请求的路由::

1.表示匹配到get和post两种请求方式的路由Route::match(['get', 'post'], '/', function () {    //});2.表示任意请求方式的路由Route::any('/', function () {    //});

注意:指向web路由文件中定义的POST,PUT,PATCH, 或DELETE路由的任何 HTML 表单都应该包含一个 CSRF 令牌字段,否则,这个请求将会被拒绝。

<form method="POST" action="/profile">    @csrf    ...form>

视图路由

如果你的路由只需要返回一个视图, 你可以使用 Route::view 方法。它和 redirect 一样,提供了一个简单的方式,而无需定义完整的路由或控制器。view 方法接受一个 URI 作为第一个参数,一个视图名作为第二个参数。此外,还可以通过第三个可选参数将一个数据数组传递给视图:

Route::view('/welcome', 'welcome');Route::view('/welcome', 'welcome', ['name' => 'Taylor']);

3. 路由命名

路由命名可以方便地为指定路由生成 URL 或者重定向。通过在路由定义上链式调用 name 方法可以指定路由名称:

Route::get('user/profile', function () {    //})->name('profile');

4.正则表达式约束

你可以使用路由实例上的 where 方法约束路由参数的格式。where 方法接受参数名称和定义参数应如何约束的正则表达式:

Route::get('user/{name}', function ($name) {    //})->where('name', '[A-Za-z]+');Route::get('user/{id}', function ($id) {    //})->where('id', '[0-9]+');Route::get('user/{id}/{name}', function ($id, $name) {    //})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

5.路由组

prefix方法将会为路由组中的每一个 URI 添加前缀。例如,您可以给该组中所有的 URI 添加admin的前缀:

Route::prefix('admin')->group(function () {    Route::get('users', function () {        // Matches The "/admin/users" URL    });});

6. 回退路由

回退路由

使用 Route::fallback 方法, 您可以定义一个在没有其他路由可匹配传入的请求时才执行的路由。一般来说,未处理的请求会通过应用程序的异常处理程序自动呈现 「404」 页面。但是由于您可以在 routes/web.php 文件中定义 fallback 路由,因此 web 中间件组中的所有中间件都将应用于该路由。当然,您也可以根据需要随意向此路由添加其他中间件

Route::fallback(function () {    //});

7. 定义限流器

Laravel 包含功能强大且可自定义的限流服务,您可以利用这些服务来限制给定的路由或一组路由的流量。首先,您应该定义满足应用需求的限流器配置。通常,这可以写在应用程序的 RouteServiceProvider 中。

限流器可以使用 RateLimiter 门面的 for 方法定义。for 方法接受一个速率限制器名称和一个闭包会返回限制配置,该配置可以应用于分配了该限流器的路由:

use Illuminate\Cache\RateLimiting\Limit;use Illuminate\Support\Facades\RateLimiter;RateLimiter::for('global', function (Request $request) {    return Limit::perMinute(1000);});

原文:https://zhuanlan.zhihu.com/p/268416732

aa2a49d16410db17d21f4c033e6510c0.png681f6c1316353a06ee163ac8413da677.gif3864c90edcebed71324c8f0c8bd3b573.png4fc3bd2e83f7c2d06f91bc1b3c1ecf6f.gif想要获取学习实战、高并发、架构 、笔试面试资料请扫码咨询+薇薇微信
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值