![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Laravel5.5+/Lumen
卩杉
勤学如早春之苗,不见其增,日有所长。辍学如磨刀之石,不见其减,日有所损。
展开
-
Laravel 数据库查询 N+1问题
N+1 问题在 ORM 中普遍存在,常见于遍历操作中。N+1 问题由来假设需要现在需要查找模型 A 的 n 条数据,而模型 A 又关联了另外多个的模型,这里假设 A 关联了模型 B 和 C. 现在需要查找 n 条 A 的记录(这里需要 1 条 SQL 语句,例如 select * from A ),同时把这 n 条记录关联的 B, C 记录也查出来(这里需要 n 条查询 B 的语句和 n 条查...原创 2019-10-24 10:29:13 · 646 阅读 · 0 评论 -
Laravel 社会化登录之微信网页授权登录
前端在授权微信登录时需要获取用户的微信信息,比如 openId ,头像等信息.微信网页授权文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842前端在获取 code 后需要将 code 返回给开发者的服务器,开发者的服务器通过前端返回的 code 去微信服务器换取 access_token ,然后开发...原创 2019-01-09 15:31:34 · 3863 阅读 · 0 评论 -
Lumen 5.5.* 中使用 redis
https://blog.csdn.net/qq_38191191/article/details/81354599原创 2019-01-22 20:36:24 · 895 阅读 · 0 评论 -
Laravel Blade 模板中的 include 方法基本使用
Laravel 中的 include() 方法可以加载局部视图文件,如@extends('layouts.default')@section('title', $user->name)@section('content') @include('shared._user_info')@stopinclude() 方法还可以通过加入第二个数组参数传参到局部视图中使用,如@...原创 2019-02-19 10:18:10 · 5971 阅读 · 0 评论 -
Laravel 前端工作流的基本使用
Laravel 的前端工作流的扩展包支持 npm 和 yarn,yarn 是 npm 的替代品,yarn的官方安装文档不管是使用 npm 还是 yarn,我们都需要 node 的支持.使用 Laravel 的前端工作流大致需要这么几步:使用 yarn 安装 npm 依赖yarn install安装成功后即可使用npm run watch-poll如果命令 npm run wa...原创 2019-02-19 10:42:11 · 883 阅读 · 0 评论 -
Laravel5.5+/Lumen 设置时区
对于 Laravel/Lumen 项目来说,默认的时区是美国时间,于中国时间相差 8 个小时.那么如何设置中国区的时间呢?Laravel 和 Lumen 有大同小异的区别,Lumen 的 src/app 文件夹中没有 config 文件夹,主要的配置文件在 app/src/vendor/laravel/lumen-framework/config 中.另外对于默认配置二者也是有些区别的.比...原创 2019-02-19 14:03:13 · 890 阅读 · 0 评论 -
Laravel 自定义 auth 中间件未通过身份验证的跳转页面
Laravel 提供的 Auth 中间件在过滤指定动作时,如该用户未通过身份验证(未登录用户),默认将会被重定向到 /login 登录页面.那么怎么来修改这个默认的跳转到,让它跳转到我们需要的页面.解决办法:在 app/Exceptions/Handler.php 里新增以下方法即可: protected function unauthenticated($request, Authenti...原创 2019-02-19 14:31:06 · 1904 阅读 · 3 评论 -
Laravel Auth 中间件的访问限制
Laravel 默认的 auth 用户认证可以设置访问权限,这在实际项目中很有用.我们可以使用 Auth 中间件提供的 auth 属性和 guest 选项来实现这个功能.比如项目中有个 SessionsController 是进行用户回话管理的,如下:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;...原创 2019-02-19 15:19:15 · 2524 阅读 · 0 评论 -
Laravel 的本地作用域和动态作用域的简单使用
Laravel 的本地作用域和动态作用域的区别就是是否传递附加参数到作用域中。要定义一个作用域只需要在 scope 前加上一个 Eloquent 模型方法即可。示例:在话题中,我们需要一个排序的逻辑:Models/Topic.phppublic function scopeWithOrder($query, $order) { // 不同的排序,使用不同的数据读取逻辑...原创 2019-02-25 10:07:44 · 887 阅读 · 0 评论 -
Laravel Elequent 模型事件监听的简单使用
Laravel Elequent 模型事件可以在模型的生命周期内对以下几点进行监听:retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring、restored。事件能在每次在数据库中保存或更新特定模型类时轻松地执行代码。从数据库中检索现有模型时会触发 retrieved 事件。当新模型...原创 2019-02-20 10:11:38 · 1885 阅读 · 0 评论 -
Laravel 中的邮件发送
在 Laravel 中,可以通过 Mail 接口的 send 方法来进行邮件发送,示例如下:$view = 'emails.confirm';$data = compact('user');$from = 'xxx@163.com';$name = 'Narcissus';$to = $user-&amp;amp;gt;email;$subject = &amp;quot;感谢您的注册!请确认你的邮箱。&amp;quot;;Mail...原创 2019-02-20 11:51:06 · 1102 阅读 · 0 评论 -
Laravel 利用策略实现用户授权
Laravel 实现用户授权有 2 种方式,gates 和 策略。Gates 大部分应用在模型和资源无关的地方,策略应该用在特定的模型或者资源中。这篇笔记简单介绍策略授权的简单使用。创建策略注册策略通过控制器辅助函数使用策略示例:例如有个 bbs 系统,需要有个删除个人文章的功能(文章是 statuses表),用户只能删除自己的文章,不能删除别人的文章。创建策略创建策略可以使...原创 2019-02-20 15:06:50 · 1188 阅读 · 0 评论 -
Laravel 表单验证规则之 Unique(Database)
Laravel 的表单可用验证规则中有个个人认为不是很好理解的规则,就是下面这个规则原创 2019-02-21 11:15:03 · 6257 阅读 · 0 评论 -
Laravel 将 file 格式的资源利用文件系统上传到七牛云
Laravel 的文件系统非常强大,支持本地存储,s3 存储等,当然国内常用的七牛也是支持的,不过要安装相应的 composer 扩展。推荐使用安正超的 overtrue/laravel-filesystem-qiniu安装 composer 扩展包配置使用示例安装 composer 扩展包composer require &amp;quot;overtrue/laravel-filesystem-...原创 2019-02-21 12:09:16 · 774 阅读 · 0 评论 -
Laravel5.5+ 新建(自定义) artisan 命令
在项目开发过程中,为了方便,我们可能需要自定义一个属于自己的 artisan 命令执行特殊的任务.那么如果在 Laravel 中如何新建一个属于自己的 artisan 命令呢?1. 生成命令类php artisan 命令可以列出所有可用的 artisan 命令,其中有一个命令是 artisan make command make command 命令是用来生成自定义命令类的....原创 2019-01-07 14:58:31 · 767 阅读 · 0 评论 -
Laravel5.5+ Carbon 时间扩展的简单应用
Carbon 是继承自 PHP DateTime 类 的子类,Carbon 提供了更加丰富、更加语义化的 API.1.本地化 Carbon 在 AppServiceProvider 的 boot 方法中添加 Carbon::setLocale('zh'). public function boot() { // carbon 本地化设置 Car...原创 2019-01-02 16:05:15 · 827 阅读 · 0 评论 -
Laravel5.5+/Lumen 自定义日志文件存储
对于 laravel/lumen 而言,所有的日志文件信息(八种日志级别 emergency、alert、critical、error、warning、notice、info 和 debug )都是存在 /storage/logs/laravel.log 或 /storage/logs/lumen.log 中的.类似这样的存储方式[2018-09-10 06:45:44] lumen.INF...原创 2019-05-08 19:53:49 · 2212 阅读 · 1 评论 -
php 对密码进行加密
对于密码的处理可以参看 CodeIgniter 文档的安全章节https://codeigniter.org.cn/user_guide/general/security.html个人认为这是写的比较好的安全方面的文档.在密码加密中应该尽量减少使用 md5 方式加密 .在 Laravel/Lumen 中可以使用 Hash::make() 和 Hash::check() 加解密....原创 2019-08-24 13:36:08 · 3117 阅读 · 0 评论 -
Laravel5 原生 sql 实现分页
Laravel 的分页文档中并没有指出如何让原生 sql 支付 paginate() 方法,在简单的 sql 语句中可以使用 ORM 或是查询构造器,比如 User::leftJoin('department', 'users.department_ids','=', 'department.id') ->select('users.*','depart...原创 2018-11-15 22:16:16 · 1891 阅读 · 0 评论 -
Laravel5.5+ 维护模式
当应用程序处于维护模式时,所有对应用程序的请求都显示为一个自定义视图。这样可以在更新或执行维护时轻松地关闭你的应用程序。默认的错误视图路径为 resources/views/errors/503.blade.php示例启用维护模式php artisan down 关闭维护模式php artisan up ...原创 2018-12-04 22:19:56 · 476 阅读 · 0 评论 -
Laravel 中如何删除(清空) laravel.log 文件
laravel.log 文件是手动清空不掉的,比如打开文件,全选 delete 是没有任何效果的.清空 laravel.log 文件有个简单的命令可以使用truncate -s 0 storage/logs/laravel.log 参考: https://stackoverflow.com/questions/28127495/in-phps-larave...原创 2018-12-13 09:11:10 · 3631 阅读 · 0 评论 -
Laravel5.5+ 对数组(对象数组)数据进行分页
在使用 Laravel 时,除了在 ORM 中使用分页外,有些时候也需要对用原生 sql 查询的数据进行分页,该查询数据可能是数组,也可能是对象数组.支持数组格式:$goods = [ [],[],[] ]; 数组对象格式:以下封装了一个方法可供使用 if (!function_exists("page_wit...原创 2018-12-19 17:50:33 · 1621 阅读 · 0 评论 -
Laravel5.5+ 自定义表单验证语言文件
在使用 Laravel 的表单验证时,如果每次都去写自定义的错误信息是一个很烦人的事,而且有的错误信息可能是重复在写,比如添加和修改用户的错误信息基本一致,这是我们就需要一个语言文件来做这件事,这是 Laravel 所提倡的 DRY( Don't repeat yourself ).1.安装语言包Laravel 的语言文件目录在 resources/lang 下,默认已经存在 en 语言文...原创 2018-12-20 15:26:55 · 913 阅读 · 0 评论 -
laravel5.5+ composer 安装 laravel/horizon 错误
Horizon 这个扩展只支持 redis 驱动的队列!我在利用 composer 安装 Laravel 的队列监控 Horizon 时一直出错,错误提示如下:Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation reque...原创 2018-12-29 11:47:25 · 6309 阅读 · 5 评论 -
Laravel5.5+ 区分前后端用户登录
Laravel 的用户认证是通过 Auth Facade 门脸实现的,手动认证可是使用 Auth::login() 或 Auth::attempt() 这两个方法实现.以下内容纯属个人实现,也许有更优的实现方式.对于识别前后端的用户,可以使用 Auth::guard() 方法实现,前端默认为 web 看守,Auth::guard('web') ,后端用户使用 admin 看守, Auth...原创 2018-12-24 11:49:55 · 1847 阅读 · 0 评论 -
Laravel 中添加自定义辅助函数
在项目开发过程中,很多时候我们需要自定义辅助函数解决某些需求.如何以最佳实践在 Laravel 中添加辅助函数呢?以下是最佳实践.1. 添加函数文件将自定义辅助函数放在 app/helpers.php 也就是直接放在 app 目录下.文件名可以自定义.2. 利用 composer 自动加载函数文件在 composer.json 文件中, autoload 键中利用 file...转载 2019-01-03 17:57:46 · 725 阅读 · 0 评论 -
Laravel 中的模型关联 (一)
一对一关联一对一关联是最基本的关联关系。主要有以下两种实现方式hasOne()belongsTo()1. hasOne() 使用例如,一个 User 模型可能关联一个 Phone 模型。为了定义这个关联,我们要在 User 模型中写一个 phone 方法,在 phone 方法内部调用 hasOne 方法并返回其结果:<?phpnamespace App;use Ill...转载 2019-01-11 12:39:16 · 2300 阅读 · 0 评论 -
Laravel5.5+/Lumen 的缓存配置
Laravel5.5+/Lumen 的缓存系统可参看文档https://laravel-china.org/docs/laravel/5.5/cache/1316在 config/cache.php 文件中,laravel/lumen 默认的缓存驱动是文件 file 文件驱动.'default' => env('CACHE_DRIVER', 'file'),如果换成 r...原创 2019-04-28 23:11:55 · 1641 阅读 · 0 评论