美文网首页
1.路由、中间件、csrf

1.路由、中间件、csrf

作者: darren911 | 来源:发表于2019-12-03 02:10 被阅读0次

基本路由

  • routes/web.php 文件用于定义 web 界面的路由。这里面的路由都会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。定义在 routes/api.php 中的路由都是无状态的,并且被分配了 api 中间件组。大多数的应用构建,都是以在 routes/web.php 文件定义路由开始的。可以通过在浏览器中输入定义的路由 URL 来访问 routes/web.php 中定义的路由。
  • 路由器允许你注册能响应任何 HTTP 请求的路由
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 请求的路由:
Route::match(['get', 'post'], '/', function () {
    //
});
Route::any('/', function () {
    //
});
  • 如果要定义重定向到另一个 URI 的路由,可以使用 Route::redirect 方法。这个方法可以快速的实现重定向,而不再需要去定义完整的路由或者控制器:
Route::redirect('/here', '/there');
Route::redirect('/here', '/there', 301); //默认302
  • 路由参数,路由的参数通常都会被放在 {} 内,并且参数名只能为字母,同时路由参数不能包含 - 符号,如果有需要,可以用下划线 (_) 代替。路由参数会按顺序依次被注入到路由回调或者控制器中,而不受回调或者控制器的参数名称的影响。
Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});
//多个参数
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    //
});
  • 可选参数,有时,你可能需要指定一个路由参数,但你希望这个参数是可选的。你可以在参数后面加上 ? 标记来实现,但前提是要确保路由的相应变量有默认值
Route::get('user/{name?}', function ($name = null) {
    return $name;
});
Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});
  • 正则表达式约束,你可以使用路由实例上的 where 方法约束路由参数的格式。where 方法接受参数名称和定义参数应如何约束的正则表达式
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]+']);
  • 路由命名
Route::get('user/profile', 'UserProfileController@show')->name('profile');
  • 为路由指定了名称后,就可以使用全局辅助函数 route 来生成链接或者重定向到该路由
// 生成 URL...
$url = route('profile');
// 生成重定向...
return redirect()->route('profile');
//如果有定义参数的
Route::get('user/{id}/profile', function ($id) {
    //
})->name('profile');
$url = route('profile', ['id' => 1]);
//如果你想判断当前请求是否指向了某个命名过的路由,你可以调用路由实例上的 named 方法
if ($request->route()->named('profile')) {
        //
    }

相关文章

  • Laravel 路由、中间件及 CSRF

    前言 Laravel 路由、中间件及 CSRF。 路由 基本路由 资源路由 动词路径方法路由get/photosi...

  • 1.路由、中间件、csrf

    基本路由 routes/web.php 文件用于定义 web 界面的路由。这里面的路由都会被分配给 web 中间件...

  • Laravel代码片断

    模板地址生成: 3])}}">查看 laravel表单:{{csrf_field()}} 中间件路由: Route...

  • django csrf

    一、前言 csrf是django的默认中间件 1.使用csrf的好处 csrf的token与session配合使用...

  • python学习笔记-django crsf

    csrf(跨站请求伪造) django通过中间件 django.middleware.csrf.CsrfViewM...

  • Asp.Net Core 第07局:路由

    总目录 前言 环境 开局 第一手:路由概述 第二手:路由中间件使用 1.注册路由中间件(RoutingMiddle...

  • 翻译

    Laravel 的路由中间件 简介 创建中间件 注册中间件全局中间件为路由指定中间件中间件组 中间件参数 Term...

  • django ,ajax post 报错 "csrf token

    views.py中: 去跳过 csrf 中间件的保护,html中就不用加csrf相关的东西了

  • Node.js防范csrf攻击

    csurf Node.js 防范csrf攻击中间件 需要session中间件(如:express-session)...

  • Express中间件

    Express框架是由路由和中间件构成的一个web开发框架。 1. Express 中间件 中间件是Express...

网友评论

      本文标题:1.路由、中间件、csrf

      本文链接:https://www.haomeiwen.com/subject/wemqgctx.html