
Laravel学习笔记
文章平均质量分 61
Mush1
这个作者很懒,什么都没留下…
展开
-
Laravel学习笔记 防止重复提交订单
有以下几种方法js层面,在用户点击提交订单后禁用按钮用户提交订单后进行重定向到其他页面使用Redis incr 原子性递增,来解决这种高并发的秒杀或者分布式序列号生成等场景。在用户递交订单后,使用Redis的incr设置一个递增的KEY(KEY根据自己的需要设定但是要保证每一个人的唯一,个人感觉这里可以使用“cart_用户ID”,并设定其生存时间),来判断该KEY的数值,如果等于1说明这是第一次请求,如果大于1则表示这是重复提交,返回给用户“提交过于频繁,请稍后再试”。PS:设置生存时间是为了下次购原创 2020-08-30 16:03:28 · 1016 阅读 · 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 · 177 阅读 · 0 评论 -
Laravel学习笔记 singleton和bind的区别
singleton和bind都是返回一个类的实例,不同的是singleton是单例模式,而bind是每次返回一个新的实例singletonclass 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 · 671 阅读 · 0 评论 -
Laravel学习笔记 SSH连接谷歌云服务器
用SSH工具XShell连接谷歌云 root用户或普通用户利用linux连接谷歌云生成本地密钥// $ cd ~/.ssh$ ssh-keygen -f myKey// 复制公钥,并将末尾改成对应用户名$ cat myKey.pubssh-rsa AAAAaaaaaaaeglRVJzAhNq+W中间部分省略。。。dKx8sJ0Rw4aaaaaa845UVp1 user@computer-name.local# 把这长长的一段复制下来,把其中的 user@computer-..原创 2020-08-09 16:08:06 · 230 阅读 · 0 评论 -
Laravel学习笔记 定时任务
Laravel除了可以使用event+listen+delay的方式进行异步定时任务外,还可以选择自建command的方式轮询的处理定时任务(区别在于,利用事件的形式异步的处理定时任务时,如果任务已经推送到队列中,是无法进行修改的,且必须执行)首先先生成一个command文件// 其中,定时任务命名规范一般都有cron前缀,所以要放在command/cron文件夹下artisan make:command Cron/FinishCrowdfunding生成的文件格式如下<?phpna转载 2020-08-05 20:33:33 · 268 阅读 · 0 评论 -
Laravel学习笔记 ViewComposer
网站一般都有侧栏,用来显示分类,标签,热门文章,热门评论啥的,但是这些侧栏都是相对独立的模块,如果在每一个引入侧栏的视图中都单独导入与视图有关的数据的话,未免太冗余了。。。所以最佳的做法是:新建一个 widgets 视图文件夹,再利用 Laravel 的 ViewComposers 单独为侧栏绑定数据,这样侧栏就可以随便引入而不用关心数据是否绑定啦~~~我们先创建一个 ViewComposer 类,通常放在 app/Http/ViewComposers 目录下:mkdir -p app/Http/Vi转载 2020-08-04 21:43:06 · 701 阅读 · 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 · 717 阅读 · 0 评论 -
Laravel学习笔记 phpredis安装
感谢作者的教程!!原创 2020-07-28 21:14:13 · 285 阅读 · 0 评论 -
Laravel学习笔记 自定义辅助函数
把所有的『自定义辅助函数』存放于 bootstrap/helpers.php 文件中,创建这个文件,并且放入如下内容:<?phpfunction test_helper() { return 'OK';}打开 composer.json 文件,并找到 autoload 段,将其修改为: "autoload": { "classmap": [ "database/seeds", "database/factorie转载 2020-07-24 13:54:15 · 128 阅读 · 0 评论 -
Laravel学习笔记 配置代码提示以及artisan配置
laravel-ide-helper 用于实现方便的代码提示功能,详细查看插件官网使用composer安装插件composer require --dev barryvdh/laravel-ide-helperAdd 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 · 270 阅读 · 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 · 346 阅读 · 0 评论 -
Laravel学习笔记(35)利用事件进行邮箱验证功能(notify,listen,event,MailHog)
使用一个事件的处理分为以下几点(1)注册事件和事件监听器(2)编写事件监听器内的触发操作具体可以查看:Laravel事件以及模型事件小结PS:Observer观察者也是对模型事件进行处理,不过两者略有区别,可以参考Laravel 中的模型事件与 Observer所以对于‘利用事件进行邮箱验证功能’有以下几点操作:前期准备: $table->string('mail_toke...原创 2020-02-26 21:40:44 · 770 阅读 · 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 · 911 阅读 · 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 · 273 阅读 · 0 评论 -
Laravel学习笔记(33)后台切换前台模板(修改默认的加载模版路径)
目的:通过后台点击按钮修改模块config信息,之后登录前台的时候,自动读取后台config信息,判断使用哪种设定好了的前台模板。后台模板控制页面:获取前台模板列表: Route::get('template', 'TemplateController@index'); public function index(TemplateService $templateServ...原创 2020-02-25 15:29:21 · 829 阅读 · 0 评论 -
Laravel学习笔记(32)域名直接访问模块index视图
目的:直接输入域名,根据后台设定的默认模块,直接跳转到默认模块的HomeController的index方法,并渲染出相应的视图点击更新缓存按钮后对模块列表数据进行更新 // 新建模块信息存储表 Schema::create('modules', function (Blueprint $table) { $table->increment...原创 2020-02-24 22:31:58 · 806 阅读 · 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 · 431 阅读 · 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 · 241 阅读 · 0 评论 -
Laravel学习笔记(30)Laravel Guard 和与之相关的中间件使用
什么是gurads个人理解认为是用户验证之前的配置文件,告诉系统按照什么标准(数据库?模型?)来进行验证参数说明config/auth.php<?phpreturn [ // 默认系统验证使用的方式 'defaults' => [ 'guard' => 'web', 'passwords' => 'users',...原创 2020-02-20 19:03:28 · 915 阅读 · 0 评论 -
Laravel学习笔记(29)Laravel的核心概念(服务容器概念,依赖注入,绑定,服务提供者,外观)
什么是服务器容器服务容器就是一个普通的容器,用来装类的实例,然后在需要的时候再取出来。用更专业的术语来说是服务容器实现了控制反转(Inversion of Control,缩写为 IoC),意思是正常情况下类 A 需要一个类 B 的时候,我们需要自己去 new 类 B,意味着我们必须知道类 B 的更多细节,比如构造函数,随着项目的复杂性增大,这种依赖是毁灭性的。控制反转的意思就是,将类 A 主...原创 2020-02-18 22:02:53 · 369 阅读 · 0 评论 -
Laravel学习笔记(28)laravel6 认证与授权(OAuth 2.0 密码模式实例)
Access TokenAccess Token有两种类型,分别是Bearer类型和MAC类型配置授权服务器入口文件中替换原生 Request 为 BaseRequest // 使得 request 和 response 都是 json 格式class BaseRequest extends Request{ public function expectsJson() ...原创 2020-02-17 21:45:01 · 768 阅读 · 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 · 1173 阅读 · 0 评论 -
Laravel学习笔记(26)laravel6 认证与授权(OAuth 2.0的四种模式解读)
参考:参考网站授权码模式(适用于前后端分离)这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。一般应用于第三方网站通过微信、QQ、Github登陆就是这种模式网站应用微信登陆开发指南问题:为什么使用授权码原因:避免令牌泄露问题:为什么不直接...原创 2020-02-16 15:51:31 · 638 阅读 · 0 评论 -
Laravel学习笔记(25)laravel6 认证与授权(OAuth 2.0)
参考文章:OAuth 2.0什么是OAuth 2.0OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。(1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有...原创 2020-02-16 15:06:59 · 238 阅读 · 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 · 555 阅读 · 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 · 399 阅读 · 0 评论 -
Laravel学习笔记(22)模型关系(远程一对一,远程一对多,多态一对一,多态一对多,多态多对多)
远程一对一一个帖子属于一个作者,该作者就读一所学校。帖子可通过作者访问作者所在的学校模型关系# App\Threadpublic function authorSchool(){ return $this->hasOneThrough('App\School', 'App\Author');}# App\Threadpublic function authorS...原创 2020-02-15 16:05:43 · 1088 阅读 · 0 评论 -
Laravel学习笔记(21)模型关系(一对一,一对多,多对多)
一对一生成相应的表// 自动表名为identity_cards,手动migration名为create_identity_cards_tablephp artisan make:migration create_identity_cards_table// 手动表名为identity_cards,手动migration名为create_identity_cards_tablephp...原创 2020-02-14 21:25:42 · 707 阅读 · 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 · 371 阅读 · 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 · 431 阅读 · 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 · 173 阅读 · 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 · 225 阅读 · 0 评论 -
Laravel学习笔记(17)Blog列表功能
视图 {{--博客列表--}} <div class="card"> <div class="card-header"> 博客列表 </div> <div class="card-body"> <table class="...原创 2020-02-10 15:31:53 · 177 阅读 · 0 评论 -
Laravel学习笔记(16)Blog编写功能(数据迁移,模型关系,数据填充)
追加blogs表生成migrations文件// 表名blogs 文件名 create_blogs_tablephp artisan make:migration --create=blogs create_blogs_table追加内容 public function up() { Schema::create('blogs', function (...原创 2020-02-07 20:27:01 · 171 阅读 · 0 评论 -
Laravel学习笔记(15)通过邮箱找回密码(Notify)
生成Password控制器添加路由邮件发送页面利用Notify发送邮件生成notify文件artisan make:notification findEmailNotify在文件中编辑邮件内容<?phpnamespace App\Notifications;use Illuminate\Bus\Queueable;use Illuminate\Contracts...原创 2020-02-07 17:13:32 · 323 阅读 · 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 · 435 阅读 · 0 评论 -
Laravel学习笔记(13)简单邮箱配置发送
配置邮箱.env文件中MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_PORT=465 // 从qq邮箱获得MAIL_USERNAME=123456789@qq.comMAIL_PASSWORD=xzfaloiodlpsbhjd // 从qq邮箱获得的授权码MAIL_ENCRYPTION=ssl // 加密方式MAI...原创 2020-02-06 16:36:00 · 398 阅读 · 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 · 642 阅读 · 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 · 671 阅读 · 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 · 157 阅读 · 0 评论