老莫的笔记本  
  
查看: 1036|回复: 0

Laravel 路由定义、参数传递及路由命名 [老莫版讲解]

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2019-5-26 22:31:33 | 显示全部楼层 |阅读模式
二 、 lavarel 中的路由
        概述: routes/web.php,用于处理终端用户通过 Web 浏览器直接访问的请求, 【后台专用】
                   routes/api.php,用于处理其他接入方的 API 请求(通常是跨语言、跨应用的请求)。【前后台分离用】
       
        2.1        路由请求
       
                Route::get('/', function () {});
                Route::post('/', function () {});
                Route::put('/', function () {});
                Route::delete('/', function () {});
       
                此外,还可以通过 Route::any 定义一个可以捕获任何请求方式的路由:
                Route::any('/', function () {});
       
                指定路由请求方式:
                Route::match(['get', 'post'], '/', function () {});
       
                控制器+ 方法  【App\Http\Controllers\WelcomeController 控制器的 index方法】
                Route::get('/', 'WelcomeController@index');
               
        2.2 路由参数:
                2.2.1参数路由机制
                Route::get('user/{id}', function ($id) {
                        return "用户ID: " . $id;
                });
               
                2.2.2可选参数路由机制+ 设定默认值
                Route::get('user/{id?}', function ($id = 1) {
                        return "用户ID: " . $id;
                });
               
                2.2.3路由参数正则匹配 【访问不正确 会进404】
                Route::get('page/{id}', function ($id) {
                        return '页面ID: ' . $id;
                })->where('id', '[0-9]+');

                Route::get('page/{name}', function ($name) {
                        return '页面名称: ' . $name;
                })->where('name', '[A-Za-z]+');

                Route::get('page/{id}/{slug}', function ($id, $slug) {
                        return $id . ':' . $slug;
                })->where(['id' => '[0-9]+', 'slug' => '[A-Za-z]+']);
               
                2.2.4 【在控制器中,接收路由的参数】
               
                        2.2.4.1        web.php 文件中 Route::get('/m/{id?}', 'TestConTroller@index');
                       
                        2.2.4.2 控制器中:
                            public function index( $id=1 )
                                {
                                        return '进来了'.$id;
                                }

               
               
        2.3 路由命名 【主要是在前后端不分离的基础上,在视图模板中调用路由】
               
                2.3.1 <a href="{{ url('/') }}"> 这是在模板中输出,当前域名+ 当前位置
               
                2.3.2 命名路由与前端引用
               
                        2.3.2.1         后端路由配置多了一个name :
                               
                                Route::get('user/{id?}', function ($id = 1) {
                                        return "用户ID: " . $id;
                                })->name('user.profile');
                       
                        2.3.2.2  前端模板输出 【route 为辅助函数】
                        <a href="{{ route('user.profile', ['id' => 100]) }}">
                        // 输出:http://blog.test/user/100
                        // 在参数顺序一致的情况下简化 <a href="{{ route('user.profile', [100]) }}">

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表