Laravel学习笔记
文章平均质量分 61
Mush1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Laravel学习笔记 防止重复提交订单
有以下几种方法 js层面,在用户点击提交订单后禁用按钮 用户提交订单后进行重定向到其他页面 使用Redis incr 原子性递增,来解决这种高并发的秒杀或者分布式序列号生成等场景。在用户递交订单后,使用Redis的incr设置一个递增的KEY(KEY根据自己的需要设定但是要保证每一个人的唯一,个人感觉这里可以使用“cart_用户ID”,并设定其生存时间),来判断该KEY的数值,如果等于1说明这是第一次请求,如果大于1则表示这是重复提交,返回给用户“提交过于频繁,请稍后再试”。PS:设置生存时间是为了下次购原创 2020-08-30 16:03:28 · 1094 阅读 · 0 评论 -
Laravel学习笔记 秒杀思路
此外,为了更好的减少数据库的并发量,可以采用随机拒绝的方式,即设置一个请求中间件,当用户的请求到来的时候,对请求进行过滤。即只有百分之多少的人可以参与秒杀。 public function handle($request, Closure $next, $percent) { if (random_int(0, 100) < (int)$percent) { throw new InvalidRequestException('参与的用户过多,.原创 2020-08-18 17:13:02 · 262 阅读 · 0 评论 -
Laravel学习笔记 singleton和bind的区别
singleton和bind都是返回一个类的实例,不同的是singleton是单例模式,而bind是每次返回一个新的实例 singleton class fun { public $strKey; } app()->singleton('fun', fun::class); $fun1 = app()->make('fun'); $fun2 = app()->make('fun'); $fun1->strKey = "fun1"; $fun2->strKey = "原创 2020-08-14 19:04:38 · 748 阅读 · 0 评论 -
Laravel学习笔记 SSH连接谷歌云服务器
用SSH工具XShell连接谷歌云 root用户或普通用户 利用linux连接谷歌云 生成本地密钥 // $ cd ~/.ssh $ ssh-keygen -f myKey // 复制公钥,并将末尾改成对应用户名 $ cat myKey.pub ssh-rsa AAAAaaaaaaaeglRVJzAhNq+W 中间部分省略。。。 dKx8sJ0Rw4aaaaaa845UVp1 user@computer-name.local # 把这长长的一段复制下来,把其中的 user@computer-..原创 2020-08-09 16:08:06 · 269 阅读 · 0 评论 -
Laravel学习笔记 定时任务
Laravel除了可以使用event+listen+delay的方式进行异步定时任务外,还可以选择自建command的方式轮询的处理定时任务 (区别在于,利用事件的形式异步的处理定时任务时,如果任务已经推送到队列中,是无法进行修改的,且必须执行) 首先先生成一个command文件 // 其中,定时任务命名规范一般都有cron前缀,所以要放在command/cron文件夹下 artisan make:command Cron/FinishCrowdfunding 生成的文件格式如下 <?php na转载 2020-08-05 20:33:33 · 327 阅读 · 0 评论 -
Laravel学习笔记 ViewComposer
网站一般都有侧栏,用来显示分类,标签,热门文章,热门评论啥的,但是这些侧栏都是相对独立的模块,如果在每一个引入侧栏的视图中都单独导入与视图有关的数据的话,未免太冗余了。。。 所以最佳的做法是:新建一个 widgets 视图文件夹,再利用 Laravel 的 ViewComposers 单独为侧栏绑定数据,这样侧栏就可以随便引入而不用关心数据是否绑定啦~~~ 我们先创建一个 ViewComposer 类,通常放在 app/Http/ViewComposers 目录下: mkdir -p app/Http/Vi转载 2020-08-04 21:43:06 · 753 阅读 · 0 评论 -
Laravel学习笔记 自定义Exception
php artisan make:exception TestException 新生成Exception是空的 但是因为继承Exception类,所以可以直接调用 throw new TestException('test'); 且能正常输出 此时的错误code默认为0, 想要设定code和默认message,可以使用__construct 想要自定义设置错误,可以使用render()方法 public function render(Request $request) {原创 2020-08-01 20:11:35 · 771 阅读 · 0 评论 -
Laravel学习笔记 phpredis安装
感谢作者的教程!!原创 2020-07-28 21:14:13 · 322 阅读 · 0 评论 -
Laravel学习笔记 自定义辅助函数
把所有的『自定义辅助函数』存放于 bootstrap/helpers.php 文件中,创建这个文件,并且放入如下内容: <?php function test_helper() { return 'OK'; } 打开 composer.json 文件,并找到 autoload 段,将其修改为: "autoload": { "classmap": [ "database/seeds", "database/factorie转载 2020-07-24 13:54:15 · 183 阅读 · 0 评论 -
Laravel学习笔记 配置代码提示以及artisan配置
laravel-ide-helper 用于实现方便的代码提示功能,详细查看插件官网 使用composer安装插件 composer require --dev barryvdh/laravel-ide-helper Add the following class to the providers array in config/app.php: Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, If you want to manual原创 2020-07-22 11:06:03 · 312 阅读 · 0 评论 -
Laravel学习笔记 广播
composer require predis/predis 设置.env文件,修改广播驱动BROADCAST_DRIVER=redis 设置.env文件,修改QUEUE_DRIVER=redis(使用到了redis队列) 开启 config/app.php App\Providers\BroadcastServiceProvider::class 生成eventartisan make:eve...原创 2020-03-22 21:52:03 · 419 阅读 · 0 评论 -
Laravel学习笔记(35)利用事件进行邮箱验证功能(notify,listen,event,MailHog)
使用一个事件的处理分为以下几点 (1)注册事件和事件监听器 (2)编写事件监听器内的触发操作 具体可以查看:Laravel事件以及模型事件小结 PS:Observer观察者也是对模型事件进行处理,不过两者略有区别,可以参考Laravel 中的模型事件与 Observer 所以对于‘利用事件进行邮箱验证功能’有以下几点操作: 前期准备: $table->string('mail_toke...原创 2020-02-26 21:40:44 · 887 阅读 · 0 评论 -
Laravel学习笔记(34)幻灯片模块(自定义Blade标签)
使用Swiper幻灯片组件 将幻灯片图片地址保存到数据库中,表定义如下 $table->increments('id'); $table->timestamps(); $table->string('title')->comment('标题|input'); $table->string('url')->comment('链接|input'); $...原创 2020-02-25 20:37:05 · 969 阅读 · 0 评论 -
Laravel随笔 项目中使用自己的js或者less
首先打开laravel的项目文件。 然后再public目录下面新建一个css文件夹。 在css文件夹里面新建几个css文件,也可以是less文件,但需要安装less编译 cnpm install -g less 然后再找到views这个目录。 在该目录下面新建一个模板 在模板中具体操作 引入css 默认引入public目录 <link rel="stylesheet"...原创 2020-02-25 17:00:36 · 323 阅读 · 0 评论 -
Laravel学习笔记(33)后台切换前台模板(修改默认的加载模版路径)
目的:通过后台点击按钮修改模块config信息,之后登录前台的时候,自动读取后台config信息,判断使用哪种设定好了的前台模板。 后台模板控制页面: 获取前台模板列表: Route::get('template', 'TemplateController@index'); public function index(TemplateService $templateServ...原创 2020-02-25 15:29:21 · 902 阅读 · 0 评论 -
Laravel学习笔记(32)域名直接访问模块index视图
目的:直接输入域名,根据后台设定的默认模块,直接跳转到默认模块的HomeController的index方法,并渲染出相应的视图 点击更新缓存按钮后对模块列表数据进行更新 // 新建模块信息存储表 Schema::create('modules', function (Blueprint $table) { $table->increment...原创 2020-02-24 22:31:58 · 867 阅读 · 0 评论 -
Laravel学习笔记(30)Larave文件上传相关函数
1、获取上传的文件 $file=$request->file('file'); 2、获取上传文件的文件名(带后缀,如abc.png) $filename=$file->getClientOriginalName(); 3、获取上传文件的后缀(如abc.png,获取到的为png) $fileextension=$file->getClientOriginalExtension(...转载 2020-02-24 14:07:51 · 473 阅读 · 0 评论 -
Laravel学习笔记(31)Bootstraps部分模板学习(modal,component)
modal & component部件 b4-modal-default 注意,form一定要放在table外面,否则submit将没有反应。 <button data-toggle="modal" data-target="#modelId" type="button" class="btn btn-success">添加角色</button> @compon...原创 2020-02-20 21:30:23 · 281 阅读 · 0 评论 -
Laravel学习笔记(30)Laravel Guard 和与之相关的中间件使用
什么是gurads 个人理解认为是用户验证之前的配置文件,告诉系统按照什么标准(数据库?模型?)来进行验证 参数说明 config/auth.php <?php return [ // 默认系统验证使用的方式 'defaults' => [ 'guard' => 'web', 'passwords' => 'users',...原创 2020-02-20 19:03:28 · 996 阅读 · 0 评论 -
Laravel学习笔记(29)Laravel的核心概念(服务容器概念,依赖注入,绑定,服务提供者,外观)
什么是服务器容器 服务容器就是一个普通的容器,用来装类的实例,然后在需要的时候再取出来。用更专业的术语来说是服务容器实现了控制反转(Inversion of Control,缩写为 IoC),意思是正常情况下类 A 需要一个类 B 的时候,我们需要自己去 new 类 B,意味着我们必须知道类 B 的更多细节,比如构造函数,随着项目的复杂性增大,这种依赖是毁灭性的。控制反转的意思就是,将类 A 主...原创 2020-02-18 22:02:53 · 418 阅读 · 0 评论 -
Laravel学习笔记(28)laravel6 认证与授权(OAuth 2.0 密码模式实例)
Access Token Access Token有两种类型,分别是Bearer类型和MAC类型 配置授权服务器 入口文件中替换原生 Request 为 BaseRequest // 使得 request 和 response 都是 json 格式 class BaseRequest extends Request { public function expectsJson() ...原创 2020-02-17 21:45:01 · 854 阅读 · 0 评论 -
Laravel学习笔记(27)laravel6 认证与授权(OAuth 2.0 授权码模式实例)
准备两个服务器,一个模拟第三方服务器,一个模拟授权服务器 授权服务器(微信) 通过 Composer 包管理器安装 Passport: 其中laravel/passport 提供 OAuth 认证服务 composer require laravel/passport 创建存储客户端和令牌的数据表: php artisan migrate 接下来,运行 passport:install 命...原创 2020-02-17 01:29:47 · 1273 阅读 · 0 评论 -
Laravel学习笔记(26)laravel6 认证与授权(OAuth 2.0的四种模式解读)
参考:参考网站 授权码模式(适用于前后端分离) 这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。 一般应用于第三方网站通过微信、QQ、Github登陆就是这种模式 网站应用微信登陆开发指南 问题:为什么使用授权码 原因:避免令牌泄露 问题:为什么不直接...原创 2020-02-16 15:51:31 · 741 阅读 · 0 评论 -
Laravel学习笔记(25)laravel6 认证与授权(OAuth 2.0)
参考文章:OAuth 2.0 什么是OAuth 2.0 OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。 令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。 (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有...原创 2020-02-16 15:06:59 · 300 阅读 · 0 评论 -
Laravel学习笔记(24)laravel6 认证与授权(api)
原文:https://qianjinyike.com/laravel-api-%E8%AE%A4%E8%AF%81/ 编写完全为 API 服务的 Laravel 应用,并所有响应都是 JSON 格式时,使用API认证 原理 注册:用户注册成功后,随机生成长字符串作为 token,原生 token 返回给用户cookie。哈希后的 token 存到数据库里。 登陆:用户使用账号密码登陆成功,随机...原创 2020-02-16 01:27:43 · 622 阅读 · 0 评论 -
Laravel学习笔记(23)laravel6 认证与授权(web)
原文:https://qianjinyike.com/laravel-%E5%86%85%E7%BD%AE-web-%E8%AE%A4%E8%AF%81/ 什么是web认证 用户注册成功(登陆成功)后。在服务器端生成 session 文件,并返回session文件名存入客户端cookie中。 用户带着cookie中的session文件名去服务器端中查找session文件,找到了就认证成功,否则...原创 2020-02-15 20:10:46 · 462 阅读 · 0 评论 -
Laravel学习笔记(22)模型关系(远程一对一,远程一对多,多态一对一,多态一对多,多态多对多)
远程一对一 一个帖子属于一个作者,该作者就读一所学校。帖子可通过作者访问作者所在的学校 模型关系 # App\Thread public function authorSchool() { return $this->hasOneThrough('App\School', 'App\Author'); } # App\Thread public function authorS...原创 2020-02-15 16:05:43 · 1238 阅读 · 0 评论 -
Laravel学习笔记(21)模型关系(一对一,一对多,多对多)
一对一 生成相应的表 // 自动表名为identity_cards,手动migration名为create_identity_cards_table php artisan make:migration create_identity_cards_table // 手动表名为identity_cards,手动migration名为create_identity_cards_table php...原创 2020-02-14 21:25:42 · 777 阅读 · 0 评论 -
Laravel学习笔记(20)模块化开发(laravel默认登陆验证功能,语言包)
安装设置nwidart/laravel-modules 官方安装手册 使用php artisan ui vue --auth命令,生成默认的登陆功能 修改语言包 下载语言包 composer require caouecs/laravel-lang:~3.0 包含大多数语言,语言包位于vendor/caouecs/larvel-lang/src 目录中。 根据需要复制语言包到 resourc...原创 2020-02-14 15:37:24 · 436 阅读 · 0 评论 -
搭建win10+VirtualBox+Vagrant+Homestead 重量级环境
下载并安装VirtualBox 下载并安装Vagrant 下载并安装GIT 下载Homestead.box文件(在线下载比较慢) 使用cmd在Homestead.box包的路径下执行 // 将Homestead.box包放入vagrant进行管理 vagrant box add laravel/homestead F:/homestead/homestead.box // 查看包是否安装完成...原创 2020-02-13 00:34:37 · 484 阅读 · 0 评论 -
Laravel学习笔记(19)博主的粉丝和关注
前端 resources/views/user/show.blade.php <a href="{{route('follower', $user)}}" class="btn btn-success">他的粉丝{{$user->follower()->count()}}</a> <a href="{{route('following', $user)...原创 2020-02-11 16:54:26 · 210 阅读 · 0 评论 -
Laravel学习笔记(18)关注取关
建立中间表 artisan make:migration --create=followers create_followers_table public function up() { Schema::create('followers', function (Blueprint $table) { $table->bigInc...原创 2020-02-10 22:45:42 · 269 阅读 · 0 评论 -
Laravel学习笔记(17)Blog列表功能
视图 {{--博客列表--}} <div class="card"> <div class="card-header"> 博客列表 </div> <div class="card-body"> <table class="...原创 2020-02-10 15:31:53 · 255 阅读 · 0 评论 -
Laravel学习笔记(16)Blog编写功能(数据迁移,模型关系,数据填充)
追加blogs表 生成migrations文件 // 表名blogs 文件名 create_blogs_table php artisan make:migration --create=blogs create_blogs_table 追加内容 public function up() { Schema::create('blogs', function (...原创 2020-02-07 20:27:01 · 216 阅读 · 0 评论 -
Laravel学习笔记(15)通过邮箱找回密码(Notify)
生成Password控制器 添加路由 邮件发送页面 利用Notify发送邮件 生成notify文件 artisan make:notification findEmailNotify 在文件中编辑邮件内容 <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts...原创 2020-02-07 17:13:32 · 386 阅读 · 0 评论 -
Laravel学习笔记(14)通过邮箱验证码完成注册(Observer)
给数据库User表添加邮箱令牌以及是否活跃字段 方法一: 普通方法 database/migrations/2014_10_12_000000_create_users_table.php 追加字段 $table->string('email_token')->unique(); $table->tinyInteger('email_alive')->default...原创 2020-02-06 19:34:16 · 489 阅读 · 0 评论 -
Laravel学习笔记(13)简单邮箱配置发送
配置邮箱 .env文件中 MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=465 // 从qq邮箱获得 MAIL_USERNAME=123456789@qq.com MAIL_PASSWORD=xzfaloiodlpsbhjd // 从qq邮箱获得的授权码 MAIL_ENCRYPTION=ssl // 加密方式 MAI...原创 2020-02-06 16:36:00 · 445 阅读 · 0 评论 -
Laravel学习笔记(12)用户删除(管理员权限,模型策略)
前端删除按钮 不可以直接使用 <a href={{route('user.destroy', $user)}} class="btn btn-secondary btn-danger">删除</a> 路由列表 所以不使用表单方式会跳转到show方法 正确应该是: <formaction={{route('user.destroy', $user)}} m...原创 2020-02-06 15:27:57 · 717 阅读 · 0 评论 -
Laravel学习笔记(11)用户修改信息(模型策略)
父视图 // auth()->user()可以获取当前用户信息 <a href="{{route('user.edit', auth()->user())}}" class="btn btn-danger my-2 my-sm-0 mr-2">修改</a> 资源控制器的edit方法(负责修改页面) public function edit(Us...原创 2020-02-05 16:28:56 · 716 阅读 · 0 评论 -
Laravel学习笔记(10)用户查看按钮
父视图文件 // 传$user,框架会自动识别id并向下一个页面传id值,url:http://www.mushi.com/user/3 <a href={{route('user.show', $user)}} class="btn btn-success">查看</a> // 等同于 <a href={{route('user.show', ['id' =&...原创 2020-02-05 15:49:46 · 190 阅读 · 0 评论
分享