当前位置: 首页 > news >正文

Laravel框架02:路由与控制器

Laravel框架02:路由与控制器

  • 一、路由配置文件
  • 二、路由参数
  • 三、路由别名
  • 四、路由群组
  • 五、控制器概述
  • 六、控制器路由
  • 七、接收用户输入

一、路由配置文件

  • 以web网页路由文件为例:
    在这里插入图片描述
  • 默认根路由
    在这里插入图片描述
  • 路由定义格式Route::请求方式('请求的URL', 匿名函数或控制响应的方法)
    Route::get('/home', function () {return "HOME";
    });
    
  • 通过match可以实现路由响应多个HTTP请求。any实现一个路由响应所有HTTP请求。
    Route::match(['get', 'post'], '/match', function () {return "match实现一个路由响应多个HTTP请求";
    });Route::any('/any', function () {return "any实现一个路由响应所有HTTP请求";
    });
    

二、路由参数

  1. 必选参数

    • 必选参数的传递通过路由地址中的{参数名}的形式进行传递。
    Route::any('/must/{id}', function ($id) {echo "当前用户ID是{$id}";
    });
    
  2. 可选参数

    • 可选参数的传递通过路由地址中的{参数名?}的形式进行传递。
    Route::any('/optional/{id?}', function ($id = null) {echo "当前用户ID是{$id}";
    });
    
  3. 问号传参

    • 除了定义路由的方式传递路由参数,还可以通过?形式传递参数
    http://study.com/mark?id=12345Route::any('/mark', function () {echo "当前用户ID是{$_GET['id']}";
    });
    

三、路由别名

  • 在路由定义的时候,给路由起一个名字。

    Route::any('/mark', function () {echo "当前用户ID是{$_GET['id']}:<br>" . route('alias');
    })->name("alias");
    
  • 调用该路由:route("alias"),返回该路由的完整地址。
    在这里插入图片描述

  • 查看系统已经有的路由:php artisan route:list
    在这里插入图片描述

四、路由群组

  • 使用 group 对路由进行分组。
  • 使用 prefix 属性指定路由前缀。
  • 语法:Route::group(公共属性数组, 回调函数);
Route::group(['prefix' => 'admin'], function () {Route::get('test1', function () {return 'test1';});Route::get('test2', function () {return 'test2';});Route::get('test3', function () {return 'test3';});
});

在这里插入图片描述

五、控制器概述

  • 控制器文件夹位于:app/Http/Controllers
  • 控制器命名方式:大驼峰+Controller.php
  • 通过artisan命令行自动生成控制器php artisan make:controller 控制器名
    在这里插入图片描述

六、控制器路由

  • 控制器路由:即使用路由规则调用控制器下的方法。

  • 格式:Route::请求方法(路由表达式, 控制器类名@方法名)

    # 路由设定
    Route::get('/home/test/info', 'TestController@info');# 控制器
    class TestController extends Controller
    {public function info(){return phpinfo();}
    }
    
  • 创建分目录管理的控制器,只需要加上目录名称

    php .\artisan make:controller Admin/IndexController
    php .\artisan make:controller Home/IndexController
    

    在这里插入图片描述

# 路由设定
Route::get('/home/index/index', 'home\IndexController@index');
Route::get('/admin/index/index', 'Admin\IndexController@index');# 分目录管理控制器
class IndexController extends Controller
{// 测试Admin分组的Index方法public function index(){return "这是Admin分组下的index方法";}
}

七、接收用户输入

  • Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。
  • 在Laravel中如果需要使用facades,可以在config/app.php中定义别名。
  • 在Laravel中友好输出函数:dd();
  • 接收用户输入的类:Illuminate\Http\Request。
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller
{public function index(Request $request){$request->all();$request->get('id');$request->only(['id', 'name']);}
}
http://www.lryc.cn/news/21315.html

相关文章:

  • 【POJ 2418】Hardwood Species 题解(映射)
  • React组件之间的通信方式总结(下)
  • 【RabbitMQ笔记07】消息队列RabbitMQ七种模式之Publisher Confirms发布确认模式
  • 【华为OD机试模拟题】用 C++ 实现 - IPv4 地址转换成整数(2023.Q1)
  • 闭包与高阶函数
  • 人工智能轨道交通行业周刊-第35期(2023.2.20-2.26)
  • 快慢指针判断链表是否有环
  • 《MongoDB入门教程》第26篇 聚合统计之$max/$min表达式
  • FPGA纯verilog解码SDI视频 纯逻辑资源实现 提供2套工程源码和技术支持
  • JVM篇之垃圾回收
  • 尝试用程序计算Π(3.141592653......)
  • 【异常检测三件套】系列3--时序异常检测综述
  • 关于SAP 错误日志解析
  • java:自定义变量加载到系统变量后替换shell模版并执行shell
  • Redis高级删除策略与数据淘汰
  • 社畜大学生的Python之pandas学习笔记,保姆入门级教学
  • 20_FreeRTOS低功耗模式
  • Hive的使用方式
  • Flume三大核心组件
  • 数据结构(六)二叉树
  • Docker buildx 的跨平台编译
  • 【java基础】方法重载和方法重写
  • Gradle7.4安装与基本使用
  • [系统安全] 虚拟化安全之虚拟化概述
  • 如何从零开始系统的学习项目管理?
  • 面试题-----
  • 线材-电子线载流能力
  • 单变量回归问题
  • ubuntu/linux系统知识(36)linux网卡命名规则
  • java的一些冷知识