Laravel基础篇-路由、视图、模型、Blade模板(1)

简介: Laravel基础篇-路由、视图、模型、Blade模板(1)

一、Laravel简介

框架提供的功能:

1、数据库DB

2、缓存Cache

3、会话Session

4、文件上传


流行框架的优点

文档齐全

社区活跃

后期支持


Laravel简介

1、简洁,优雅

2、验证,路由,session缓存,数据库迁移功能,单元测试


版本选择

长期支持 LTS Long Time support


二、环境配置

服务器环境


$ php -v
PHP 7.1.23

Laravel 5.8 要求:PHP >= 7.1.3

文档:https://laravel.com/docs/5.8


MVC数据交互

视图View <-> 控制器Controller <-> 模型Model

Mac MAMP

Win XAMPP


phpinfo.php


<?php
phpinfo();

设置国内镜像


# 查看全局设置
composer config -gl
# 设置镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
# 解除镜像
composer config -g --unset repos.packagist

参考国内的Composer全量镜像汇总


创建项目


$ composer create-project laravel/laravel=5.8.* demo --prefer-dist
$ cd demo
$ php artisan --version
Laravel Framework 5.8.35
# 启动服务
$ php artisan serve

访问:http://127.0.0.1:8000


整个文件夹大小

Laravel Framework 5.8.35 32.8M

ThinkPHP_5.0.24_with_extend 5.6M


三、路由

1、路由简介

路由将用户的请求转发给对应的程序进行处理

作用:建立url和程序之间的映射

请求类型:get、post、put、patch、delete

路由文件:routes/web.php


2、基本路由


Route::get('hello', function () {
    return 'hello world';
});
Route::post('post', function () {
    return 'post';
});

3、多请求路由


Route::match(['get', 'post'], 'match', function () {
    return 'match';
});
Route::any('any', function () {
    return 'any';
});

4、路由参数



Route::get('detail/{id}', function ($id) {
    return 'detail-id: ' . $id ;
});
// 默认参数
Route::get('detail/{name?}', function ($name = null) {
    return 'detail-name: ' . $name ;
});
// 正则判断参数类型
Route::get('detail/{id}', function ($id) {
    return 'detail-id: ' . $id ;
})->where('id', '\d+');
Route::get('detail/{name?}', function ($name = null) {
    return 'detail-name: ' . $name ;
})->where('name', '[A-Za-z]+');
// 多个参数校验
Route::get('detail/{id}/{name?}', function ($id, $name = null) {
    return 'detail-id: ' . $id  . ' detail-name: ' . $name ;
})->where(['id' => '\d+', 'name' => '[A-Za-z]+']);

5、路由别名


Route::get('path', ['as'=>'alias', function(){
    return Route('alias');
}]);

6、路由群组


Route::group(['prefix' => 'user'], function (){
   // 访问方式:user/name
   Route::get('name', function (){
       return 'user name';
   });
   // 访问方式:user/age
    Route::get('age', function (){
        return 'user age';
    });
});

7、路由中输出视图


Route::get('/', function () {
    return view('welcome');
    // resources/views/welcome.blade.php
});

四、控制器

路由只接收请求,具体业务逻辑交由控制器处理


1、新建控制器

app/Http/Controllers/MemberController.php

namespace App\Http\Controllers;
class MemberController extends Controller
{
    function info(){
        return 'hello world';
    }
}

2、控制器和路由关联


Route::get('member/info', 'MemberController@info');
// 或者
Route::get('member/info', ['uses' => 'MemberController@info']);

3、关联控制器后,路由特性使用


// 别名
Route::get('member/info', [
    'uses' => 'MemberController@info',
    'as' => 'memberinfo'
]);
// 控制器中使用别名
// Route('memberinfo');
// 路由参数
Route::get('member/info/{id}', 'MemberController@info');
// 控制器接收参数
// function info($id){
//     return 'info:' . $id;
// }
// 验证路由参数
Route::get('member/info/{id}', 'MemberController@info')
    ->where('id', '[0-9]+');


相关文章
|
7月前
|
机器学习/深度学习 数据采集 监控
量化交易机器人开发风控模型对比分析与落地要点
本文系统对比规则止损、统计模型、机器学习及组合式风控方案,从成本、鲁棒性、可解释性等维度评估其在合约量化场景的适用性,结合落地实操建议,为不同阶段的交易系统提供选型参考。
|
4月前
|
存储 弹性计算 监控
游戏公司不愿看到的代码:为《英雄联盟》《三角洲》打造高稳定代练业务系统源码与架构解析!
代练行业痛点如何破?基于UNIAPP+PHP轻量架构,低成本实现高并发稳定运行,阿里云全栈部署月成本不足20元,支持《英雄联盟》《三角洲行动》等大型赛事流量,开源方案助你快速搭建合规、高效、防封的代练系统。
386 1
游戏公司不愿看到的代码:为《英雄联盟》《三角洲》打造高稳定代练业务系统源码与架构解析!
|
5月前
|
文字识别 自然语言处理 算法
智慧政务大厅的数字化转型:关键技术架构与终端解决方案评测
智慧政务大厅正迈向智能化,通过边缘计算、AI与物联网技术融合,构建“感知—认知—行动”闭环。依托大模型、OCR、生物识别等技术,实现语义理解、智能导办与设备协同,推动服务从“能办”到“好办、主动办”升级。
401 20
|
4月前
|
人工智能 运维 数据可视化
告别繁琐巡检:AR智能眼镜打造工业&电力运维闭环体系|阿法龙XR云平台
本方案以AR眼镜为核心,融合蓝牙定位、AI识别与多模态感知技术,构建智能巡检体系。通过精准定位触发、AI实时识别仪表状态、数据自动上传与可视化管理,实现电力、化工、智能制造等场景下巡检效率提升60%、故障率降低40%,推动工业运维数字化、标准化、闭环化转型。(238字)
|
5月前
|
Prometheus 监控 Java
Java 17 异步多线程视频上传实战
本文基于Java 17实现了企业级的异步多线程视频上传方案,核心是自定义IO密集型线程池 + CompletableFuture异步编程 + 分片上传优化,并扩展了阿里云OSS集成、进度回调、断点续传、分布式锁、日志监控等关键特性。
467 2
|
11月前
|
开发框架 编解码 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
该文档详细介绍了一个兼容JS的类Web开发范式的方舟开发框架,涵盖概述、文件组织、js标签配置及app.js等内容。框架采用HML、CSS、JavaScript三段式开发方式,支持单向数据绑定,适合中小型应用开发。文件组织部分说明了目录结构、访问规则和媒体文件格式;js标签配置包括实例名称、页面路由和窗口样式信息;app.js则描述了应用生命周期与对象管理。整体内容旨在帮助开发者快速构建基于方舟框架的应用程序。
406 102
|
计算机视觉 索引
OpenCv实时设置摄像头参数/获得摄像头参数值的方法论
这篇文章提供了一个OpenCV的实例教程,展示了如何使用`createTrackbar()`函数实时设置和获取摄像头参数值,如饱和度、Gamma和亮度,并通过回调函数在程序中连续修改这些参数。
|
数据采集 传感器 监控
目前比较好用的LabVIEW架构及其选择
目前比较好用的LabVIEW架构及其选择
758 0
|
消息中间件 Linux Kafka
CentOS7下使用Mondo Rescue实现系统全备份
CentOS7下使用Mondo Rescue实现系统全备份
2085 0
CentOS7下使用Mondo Rescue实现系统全备份
|
Ubuntu 安全
Ubuntu 解决向日葵切换账号以后黑屏的问题
Ubuntu 解决向日葵切换账号以后黑屏的问题

热门文章

最新文章