Laravel入门教程(二)A - 路由和MVC_路由

本文介绍Laravel框架中的路由配置及使用方法,包括基本路由、参数路由、路由别名、路由群组等内容,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 路由设置

路由文件位于app/Http/routes.php,本文中假设Laravel安装在 /laravel 目录下。

路由的作用是把请求转换到对应的控制器(Controller)去。

2. 基本路由

2.1. GET方式

// 设置GET方式路由
Route::get('/basic1', function () {
    return 'Get Hello World';
});

// 在浏览器中访问:http://localhost/laravel/public/basic1

2.2. POST方式

// 设置POST方式路由
Route::post('/basic2', function () {
    return 'Hello World';
});

调用POST方式的请求示例文件,采用AJAX:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="http://cdn.bootcss.com/jquery/2.2.2/jquery.min.js"></script>
</head>
<body>
<script>
$('document').ready(function(){
    $('#btnPost').click(function(){
        var postData = {};
        // 这个网址就是响应ajax的网址
        $.post('http://localhost/laravel/public/basic2', postData, function(data) {
            $('#text').html(data);
        });
    });
});
</script>
<div id="text"></div>
<a href="javascript:void(0)" id="btnPost">POST</a>
</body>
</html>

2.3. 多种请求方式响应

// 响应 GET 和 POST 这2种方式
Route::match(['get', 'post'], '/', function () {
    return 'Get & POST Hello World';
});

// 响应任意方式的Request
Route::any('foo', function () {
    return 'Any method Hello World';
});

3. 路由参数

我们在访问京东商场的时候,我们往往会访问类似的网址:

https://item.jd.com/1250987.htm

我们知道,这个网址其实是伪静态,1250987是商品的id,是个参数。

3.1. 路由参数

// 设置路由参数
Route::get('user/{id}', function($id){
    return 'User-Id-' . $id;
});

// 在浏览器中访问:http://localhost/laravel/public/user/11

3.2. 路由参数可选

// 设置路由参数
Route::get('user/{name?}', function($name = 'Martin'){
    return 'User-Name-' . $name;
});

// 在浏览器中访问:http://localhost/laravel/public/user/11

3.3.正则表达式来限制输入参数

// 正则表达式来设置路由

// id必须是数字
Route::get('user/{id}', function($id){
    return 'User-Id-' . $id;
})->where('id', '[0-9]+');

// name必须是字母,大小写都行
Route::get('user/{name?}', function($name = 'Martin'){
    return 'User-Name-' . $name;
})->where('name', '[A-Za-z]+');

3.4. 多个路由参数

// 多个参数的情况
Route::get('user/{id}/{name?}', function($id, $name = 'Martin'){
    return 'User-id-' . $id . '-name-' . $name;
})->where(['id'=>'[0-9]+', 'name'=>'[A-Za-z]+']);

4. 路由别名

在开发的过程中,不可避免的是会改变路径的名称。于是路由别名就有了大大的用处,举例如下:

  1. 设置一个路由参数 user/member-center
Route::get('user/member-center', ['as' => 'center', function(){
    return 'member-center';
}]);

Route::get('user/center',function(){
   return redirect()->route('center');
});
  1. 这时,由于需求改变,需要把 user/member-center 改成 user/center123
Route::get('user/center123', ['as' => 'center', function(){
    return 'member-center';
}]);

Route::get('user/center',function(){
   return redirect()->route('center');
});

这样的话,访问 user/center 还是可以访问到 return 'member-center'

5. 路由群组

// 路由群组
Route::any('multy2', function() {
    return 'multy2';
});

访问:http://localhost/laravel/public/multy2
返回:multy2

Route::group(['prefix' => 'member'], function() {
    Route::get('user/center', function() {
        return 'Fuck you';
    });

    Route::any('multy2', function() {
        return 'member - - multy2';
    });
});

访问:http://localhost/laravel/public/member/multy2
返回:member - - multy2

6. 路由中输出视图

视图的路径位于:resources/views

// 路由返回视图
Route::any('get_view', function() {
    return view('welcome');
});
基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值