![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Laravel学习笔记
Laravel学习笔记
刘远山
日积月累
展开
-
Laravel 实现单人登录方案思路
需要避免多人使用同样一个会员账号登录网站是一个重要的技术防护手段,掌握了基础的 HTTP 协议之后,很多问题的解决方案很容易就可以推导出来,不管是限制用户登录、跨站登录、还是超时自动登出都可以轻松的找到解决方案单人登录可以更好的保护用户和网站的账户安全好处:1、保护用户利益,当用户的用户名和密码泄露后,用户可以得到提示你的账号已经在其他地方登录,请注意你的账户安全2、保护网站利益,避免很多人使用同一个账户登录网站获取网站的服务不要太把执行效率当回事,数据沉淀会带来长远的价值当用户登录后就会创建用原创 2022-04-05 21:09:44 · 962 阅读 · 0 评论 -
Laravel 事件监听
Laravel Event & Listener 事件监听机制,让开发者不光是可以把代码组织得更加有条理的手段,而且也是对现实社会运行规则的高度抽象化映射,我们的现实社会本来也是这样,我们监控事物的变化,并对变化做出反应,让事物的发展按照我们的预期发展。当现实映射到代码逻辑中时,事件及其处理逻辑通常是分开的,毕竟不是所有的事件我们都需要马上进行响应处理。结合队列,我们可以把事件的监听和处理的工作流程做到更加完美。使用案例:监听log日志文件大小变化用户登录:记录用户登录次数、记录访问相关信息原创 2022-04-05 16:15:07 · 1581 阅读 · 0 评论 -
Laravel Service Container 类的依赖管理和依赖注入等容器相关案例
Laravel Service Container 类的依赖管理和依赖注入优点:很好的管理类与类之间的依赖管理使用简单流程:1、在创建Family前先将相关的依赖Head、Person、Tv先进行了注入和管理,最后在才进行Family的实例化2、流程Head-》Person、Tv-》FamilyRoute::get('/', function (Family $family) {});class Head{ public function __construct()原创 2022-03-17 18:15:15 · 343 阅读 · 0 评论 -
Laravel 实现跨站登录学习
跨站登录核心概念:1、所有网站共用一套用户体系2、所有网站共用一套session系统3、cookie共享session核心信息这样就实现了不同的网站使用相同cookie和相同的session进行关联,就实现了不同网站的自动登录实现跨站自动登录之共享用户体系1、为子站配置连接主站数据库的功能,访问用户的数据来自主站config\database.phpapp\User.php只有主站拥有用户数据跨站自动登录之共享session方案一:使用文件共享session方案二:数据库驱动原创 2021-08-19 00:59:29 · 456 阅读 · 0 评论 -
Lavavel实现登录跳转功能
前言登录跳转:不同的用户在登录成功之后跳转到不同的网页当中例如:网站管理员登录成功后跳转到网站后台,vip用户登录成功后跳转到vip页面准备工作用户表CREATE TABLE `users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(191) COLLATE utf8mb4_un原创 2021-08-06 00:59:06 · 315 阅读 · 0 评论 -
Laravel Middleware中间件使用示例
前言Middleware 中间件是所有主流开发框架中都必不可少的一个核心组成部分,它给开发框架带来了更大的灵活性,让代码变得更为简洁,组织得更为合理。其类似与管道的过滤机制,让其可以按照我们自己的要求设定 Middleware 的过滤顺序,这样我们就可以对请求进行判断分类,将不同的请求导向不同的处理逻辑,而且我们也可以对用户进行判断,这样进一步做到相关权限的控制。中间件编程也是编程史上一个里程碑一样的重要节点,它极大的改变了人们对框架的设计理念和编程的方式。Laravel Middleware 是中间件机原创 2021-07-29 01:11:06 · 471 阅读 · 0 评论 -
Laravel 队列-数据库驱动实现队列
前言队列系统能够将对时间实时性要求比较低的事物进行延迟处理,这样做至少有这两方面的好处,一是短时间大量同类型逻辑处理同时出现,把它们放到队列中,按照一定的时间延迟,一件一件处理,这样避免服务器资源瞬时被逼到峰值,造成服务器压力过大;二是便于这类事物的跟踪和维护。队列功能合理分配服务器计算资源,让服务器运行更为平稳。Laravel数据库队列配置1).env配置连接队列驱动为databaseQUEUE_CONNECTION=database2)创建记录执行任务与失败任务数据库迁移文件# 创建用于存原创 2021-07-16 00:41:22 · 677 阅读 · 4 评论 -
Laravel结合Redis缓存存储用户列表、详情、访问用户详情次数统计
将列表分页多条数据进行缓存//将列表分页多条数据进行缓存 //后边需要写入定时任务,定时清空缓存的分页数据重新进行存入缓存操作public function index() { //1、列表存储,需要考虑分页,以模块名+分页功能+当前分页存储区分每页key值 $page = request()->page ?? 1; $key = 'user.paginate'.$page; $users = Cache::reme原创 2021-07-15 20:52:58 · 764 阅读 · 0 评论 -
RESTful API-学习笔记
前言RESTful API 是基于 REST 架构模式提出的 API 方案,它并没有创造新的东西,而是充分利用** HTTP 已经拥有的方式方法**实现 API 的设计并指定了相应的规范。在HTTP中GET、POST、DELETE、PUT、PATCH方法中一切皆资源,而RESTful 的全称为Representational State Transfer 即(资源表征状态转移)资源的表征状态发生了转移。内容通过https://reqres.in/网站REST设计风格由于REST是基于HTTP请求方法原创 2021-07-08 23:19:36 · 343 阅读 · 0 评论 -
查询每年每月费用SQL示例
//1、查询所有年份 //SELECT YEAR (update_time) AS year_all FROM dk_contract GROUP BY YEAR (update_time) ORDER BY YEAR (update_time) ASC //2、根据年份foreach循环遍历每一年的所有月份聚合所有金额 //SELECT MONTH (update_time) AS month_all, SUM(contract_stage) FROM d原创 2021-07-02 17:30:14 · 708 阅读 · 0 评论 -
Composer 包管理器使用学习
目前最流行的 PHP 开发框架,采用的都是 Composer 包管理器,不管是Symphony,Laravel,还是国内的 Think PHP 5,Think PHP 5,Slim 等,之所以 Composer 得到众多框架的认可,主要是它更好的解决了包之间的依赖关系,把第三方的开发包管理组织的更为合理。学习 和使用 Composer 已经成为现代 PHP 程序员绕不开的一个环节。掌握 Composer 之后,世界上大量优质的第三方技能包我们都可以拿过来直接用,极大的提升开发速度和开发质量。学习和使用框架的原创 2021-05-19 00:25:42 · 1539 阅读 · 2 评论 -
关于JsonWebToken笔记
前言在学习 API 开发以及网络授权的过程中,我们会接触很多的新概念,JWT(Json Web Token) 就是之一,JWT 简单来看是一种结构紧凑、自包含的数据格式标准,定义了严格的数据规范,但是它有专属的使用场景,而它的使用场景就是由其结构中的 Signature 决定的。Signature 不同于一般的数据,它的存在就说明 JWT 的使用场景中必然有授权相关的流程或者信息交换时需要对数据进行保护。什么是JWT?JWT是Json Web Token的缩写,json的数据格式相关,在web应用的场原创 2021-04-14 00:50:37 · 321 阅读 · 0 评论 -
laravel实现超时登出
思路超时登出功能实现:1、在cookie下手(这里推荐使用)好处在于cookie存储在客户端,节省了操作服务器的资源2、在session下手实现在.env文件中设置,session_id在cookie中的过期时间# 生存时间为120分钟SESSION_LIFETIME=120注意:客户端通过每次刷新网页,请求的服务器每次会返回一个新的session_id重新设置一个cookie,从而更新cookie的生存时间...原创 2021-04-08 22:44:47 · 815 阅读 · 0 评论 -
Laravel实现无限分类增删改查功能
数据库表设计CREATE TABLE `label` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父id', `label_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '标签名称', `label_color` varchar(原创 2021-04-04 20:47:16 · 355 阅读 · 0 评论 -
Laravel6版本使用手机短信验证
准备工作a)申请荣联-云通讯的企业资质账号https://www.yuntongxun.com/member/mainb)导入荣联-云通讯SDK到laravel项目中c)这里只放模板代码,短信sdk这个就不贴代码了,需要自己到官网下载对应的sdkd)下载的模板代码有根据laravel框架改动加入命名空间和类名方便调用<?phpnamespace App\SDK;use App\Models\M3Result;use App\SDK\SmsSDK;class SendTempl原创 2021-04-04 00:49:22 · 336 阅读 · 0 评论 -
Laravel6版本使用laravel-excel3.x之导出
第一步:安装composer require maatwebsite/excel第二步:配置(可选)文件位置config/app.php'providers' => [ // 此处省略默认配置 Maatwebsite\Excel\ExcelServiceProvider::class,] 'aliases' => [ // 此处省略默认配置 'Excel' => Maatwebsite\Excel\Facades\Excel::class,]原创 2021-03-31 23:41:56 · 377 阅读 · 0 评论 -
使用Passport 进行 Laravel6 API 接口开发
知识储备1、掌握OAuth2.0授权协议(实例采用密码授权模式开发)2、掌握Passport进行接口授权3、掌握API Resource,对API返回的数据进行转换4、掌握Restful API5、掌握PostMan接口开发测试工具的使用6、掌握HTTP状态码使用,尤其是创建资源返回201状态码,返回资源200状态码,注册用户验证失败返回422状态码无法处理的实体开发环境准备1、安装 Laravel6版本composer create-project --prefer-dist larav原创 2021-03-29 23:56:45 · 452 阅读 · 0 评论 -
laravel处理文件上传
思路1、上传文件,并移动到指定目录逻辑代码public function uploadArticle(Request $request) { if ($request->isMethod('POST')) { $fileCharater = $request->file('file'); if ($fileCharater->isValid()) { //括号里面的是必须加的哦 /原创 2021-03-21 17:13:12 · 448 阅读 · 0 评论 -
laravel实现ajax无刷新状态修改
步骤1、点击获取事件内容,发送ajax请求2、响应成功后修改元素展示属性值与文本内容实现代码前端html与jquery部分<td> @if ($item->status == 0) <span class="layui-badge layui-bg-red" style="cursor:pointer" onclick="status(this,{{$item->id}},0)">下架</span> @else原创 2021-03-21 17:06:45 · 232 阅读 · 0 评论 -
Laravel实现正常接口请求登录-04
步骤1、创建Login表单登录与Register表单注册验证器,并声明验证规则2、创建User控制器,定义注册与登录逻辑3、定义路由,规定返回格式,登录时的token验证实现代码1、创建Login表单登录与Register表单注册验证器,并声明验证规则php artisan make:request \App\Http\Request\Loginphp artisan make:request \App\Http\Request\Register2、创建User控制器,定义注册与登录逻辑原创 2021-03-18 18:43:35 · 568 阅读 · 0 评论 -
Laravel错误异常使用-03
步骤:定义返回浏览器异常错误格式1、处理输入错误url提示2、token验证失败提示信息参考文档:https://learnku.com/docs/laravel/7.x/errors/7468实现代码所有异常都是由 App\Exceptions\Handler.php 处理#使用NotFoundHttpException处理路由错误use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;public funct原创 2021-03-18 02:04:07 · 210 阅读 · 0 评论 -
Laravel表单验证使用-02
步骤1、命令创建表单公共验证类定义异常返回格式与继承基础验证的表单类2、路由使用中间件定义返回正确时的数据格式参考”Laravel注册中间件使用-01“篇章3、use使用表单验证在控制器中验证请求参数实现代码1、命令创建表单公共验证类定义异常返回格式与继承基础验证的表单类#公共验证类php artisan make:request \App\Http\Request\Request#普通验证类,extends继承公共验证php artisan make:request \App\Http\原创 2021-03-17 21:32:48 · 126 阅读 · 0 评论 -
Laravel注册中间件使用-01
步骤:1、创建中间件,中间件的定义采用大驼峰命名2、app/Http/Kernel.php中注册中间件3、路由中使用中间件做http过滤拦截4、重启swoole进程(作为web的http服务)参考文档:https://learnku.com/docs/laravel/7.x/middleware/7459实现代码1、创建ApiAfter中间件php artisan make:middleware ApiAfter定义ApiAfter中间件响应请求格式<?phpnamespa原创 2021-03-17 12:01:39 · 274 阅读 · 0 评论 -
Larave操作数据库medoo的基本用法
控制器Contorller\Test\IndexController.php<?phpnamespace App\Http\Controllers\Test;use App\Http\Controllers\Controller;use Illuminate\Http\Request;class IndexController extends Controller{ /** * @var \Medoo\Medoo */ protected $med原创 2021-03-16 01:30:37 · 379 阅读 · 0 评论 -
Laravel常用扩展sanctum与medoo的使用
2、创建loginApi登录接口,用于生成token并将token存入redis缓存,并根据token失效时间’expiration’ => 60 * 2设置redis值的失效时间,因为sanctum是以分钟为单位,redis是以秒为单位需要乘60换算。参考文档:https://learnku.com/docs/laravel/7.x/sanctum/7510。2、为config/sanctum.php配置文件设置到期时间,sanctum是以分钟为单位。1、配置bootstrap/app.php。原创 2021-02-27 23:28:21 · 2463 阅读 · 0 评论 -
Linux下安装 laravel7与swooletw/laravel-swoole扩展
1、安装 laravel71、composer拉取laravel7环境cd /usr/local/nginx/html/composer create-project --prefer-dist laravel/laravel blog "7.*"2、设置nginx用户对laravel目录访问权限,可以通过设置ssh脚本加入到svn的钩子中对提交的文件和代码进行更新nginx用户对html目录下的访问权限setfacl -m u:nginx:rwx -R /usr/local/nginx/htm原创 2021-02-25 00:39:28 · 812 阅读 · 0 评论