文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

laravel路由配置

2023-09-02 18:49

关注

在laravel框架中,如何访问指定控制器中的信息内,在laravel框架中如果你想要访问指定的控制器内的方法时,你需要进行路由注册,只有进行过路由注册的地址才能够访问,不然的话会显示404,那么如何进行路由注册呢,下面的内容就是如何进行路由注册一级路由注册的规则

所有的 Laravel 路由都在 routes 目录中的路由文件中定义,这些文件都由框架自动加载。routes/web.php 文件用于定义 web 界面的路由。这里面的路由都会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。定义在 routes/api.php 中的路由都是无状态的,并且被分配了 api 中间件组

这里我的域名为:local.test.com

一:可用的路由注册方法:

Route::get($uri, $callback);  #get请求路由Route::post($uri, $callback); #post请求路由Route::put($uri, $callback);  #put请求路由Route::patch($uri, $callback);#patch请求路由Route::delete($uri, $callback);#delete请求路由Route::options($uri, $callback);#options请求路由Route::match(['get', 'post'], $uri,$callback);#多种请求路由Route::any($uri, $callback);#所有请求路由

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

{{ csrf_field() }} ...

二:基本路由注册方法

1:路由直接输出

在routes/web.php文件中添加:

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

在浏览器上输入local.test.com/test时浏览器上输出的是Hello World

2:路由访问控制器

在routes/web.php文件中添加:

Route::get('test', 'TestController@index');

然后在app/Http/Controllers目录下新建一个TestController.php文件

在浏览器上输入local.test.com/test时浏览器上输出的是11

3:重定向路由

在routes/web.php文件中添加:

Route::redirect('/here', '/there', 301);

表示的是浏览器访问local.test.com/here就会重定向到local.test.com/there

4:视图路由

在routes/web.php文件中添加:

Route::view('/test', 'test');

上述代码表示的是不经过控制器直接渲染视图文件test.php,在resources/views目录下新建一个test.php文件,里面写上html代码,然后在浏览器访问local.test.com/test是显示的就是test.php内的html代码内容

还可以像视图文件传递参数,例:

Route::view('/test', 'test',['name' => 'nihao']);

在html中使用使用传递来的参数

5:路由参数

在routes/web.php文件中添加:

Route::get('test/{id}', function ($id) {    return $id;});

在浏览器上输入local.test.com/test/10,这时候浏览器上显示的是10

你还可以对传递的参数进行校验

Route::get('test/{id}', function ($id) {    //})->where('id', '[0-9]+');

上述的检测是id参数必须是数字,如果这时候你输入的是local.test.com/test/abc,这时候显示的是404,你输入local.test.com/test/1时,正确

如果检测的参数是多个的话,where里的参数是一个数组,例:

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

6:配置全局约束

修改app/Providers目录下的RouteServiceProvider.php文件的boot方法:

这里我配置所有的id参数必须是数字:

public function boot() {    Route::pattern('id', '[0-9]+');    parent::boot();}

配置完成之后访问有id参数的url是如果id你输入的不是数字,这时候显示的是404

7:命名路由

命令路由简单来说就是给路由起别名

例:

在routes/web.php文件中添加:

Route::get('test/test', 'TestController@test')->name('test');

然后在另一个路由对应的方法中输入

// 生成 URL...$url = route('test');// 生成重定向...return redirect()->route('test');

8:中间件配置约束

(1):创建一个中间件

使用命令行在项目目录下输入

php artisan make:middleware CheckAge #Check 表示中间件文件名称

这时候在App/Http/Middleware目录下就会生成一个Check.php文件

修改CheckAge.php 文件:

route()->named('profile')) {            return redirect('/test');        }        return $next($request);    }}

(2):注册中间件

在app/Http/Kernel.php文件中的$routeMiddleware变量中添加:

'check' => \App\Http\Middleware\Check::class,

(3):配置中间件约束

在routes/web.php文件中:

Route::middleware(['check'])->group(function () {    Route::get('/', function () {        // 使用 check 中间件    });    Route::get('/test', function () {        // 使用 check 中间件    });});

Route::middleware(['check'])->group内的所有路由配置都遵循check.php中间件的规则

来源地址:https://blog.csdn.net/huaweichenai/article/details/128900986

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯