Laravel laravel 定时任务生成root权限日志导致应用崩溃 # 问题 开发一个培训报名系统,需要定时关闭订单,发送上课通知等操作,于是接入了 Laravel 的定时任务。但实际运行时,出现 Laravel 无权限写入日志问题,导致应用异常崩溃的问题。 # 原因 服务器采用的是 linux,Laravel 定时任务是直接以 root 用户的身份执行的,而定时任务执行时创建了新日志文件,新文件的权限是 `-rw-r--r-- 1 root root`,这样的权限配置使得正常运行项目的 www 用户无法写入此日志文件,导致错误。 # 解决方法 经过多方查询,最后采用命令 `sudo crontab -u www -e` 以 www 用户身份配置定时任务解决问题。 阅读全文 2020-05-27 dogify 0 条评论 7873 次浏览
Laravel Laravel 利用 doctrine/annotations 在注解中实现角色权限控制 [TOC] ## 基本术语 项目中基于常见的角色和权限方式实现权限控制,下面介绍一些术语。 - 用户 - 登录使用系统的自然人 - 角色 - 系统中用户的身份,比如管理员,普通用户,不同的角色权限不同,同一用户可以有任意多个角色 - 权限 - 用户行为,具体为做某件事的能力,有权限即能做此事。一个角色可以有任意项权限,拥有多个角色的用户即拥有这些所有权限的并集。 ## 简单用法 本文实现的权限控制只要是针对API进行权限控制,控制力度分3级。具体的实现方法是在控制器的方法注释中添加注解。注解会在 Laravel 的中间件中被读取,然后判断是否有权限。没有权限则会返回统一的报错。 阅读全文 2020-05-09 dogify 2 条评论 6161 次浏览
php php获取3天内生日人员 # 需求 项目中遇到需要显示3天内生日的人员的需求,查了一波资料,在此作个记录,方便以后查询。 # BiuBiuBiu 数据库中人员信息字段如下所示 | name | birthday | | ------------ | ------------ | | 张三 | 1991-04-19 | | 李四 | 1992-04-20 | | 王五 | 1993-04-21 | | 赵六 | 1994-04-22 | | 孙七 | 1994-04-23 | 假定今日为2020-04-20,我们期望返回生日在04-20到04-22的人员。月和日的判断比较好处理,但是每个人出生的年是不一样的,无法简单的筛选某3天就返回结果。 好在,mysql 提供了类似php格式化日期格式的函数 [`DATE_FORMAT(date,format)`](https://www.w3school.com.cn/sql/func_date_format.asp "`DATE_FORMAT(date,format)`"),第一个参数是要格式化的列名,第二个参数是格式字符串。 以下 SQL 可以将年份统一为2020,且保留日月信息。 `SELECT name,birthday, DATE_FORMAT(birthday, "2020-%m-%d") as format_birthday FROM users` | name | birthday | format_birthday| | ------------ | ------------ | ------ | | 张三 | 1991-04-19 | 2020-04-19 | | 李四 | 1992-04-20 | 2020-04-20 | | 王五 | 1993-04-21 | 2020-04-21 | | 赵六 | 1994-04-22 | 2020-04-22 | | 孙七 | 1994-04-23 | 2020-04-23 | 剩下的问题就很简单了,只要format_birthday在2020-04-20与2020-04-22之间的人就很简单了。 以下是 Laravel 中通过模型查询的代码: ```php $year = date('Y'); User::whereBetween(DB::raw("date_format(birthday, '{$year}-%m-%d')"), [Carbon::now()->toDateString(), Carbon::parse("+3 days")->toDateString()] )->get(); ``` 阅读全文 2020-04-18 dogify 0 条评论 4319 次浏览
Laravel 保姆式 Win10 + IIS 10 + SQL Server 2017 部署 Laravel 教程 [TOC] # 简介 做了个知识库管理系统,开发时服务器使用的是宝塔LAMP架构,结果开发完要求部署到客户的服务器上。客户的服务器架构是 Win10 + IIS 10 + SQL Server 2017。 折腾了一整天,终于装上了,这里记录一下。 阅读全文 2020-03-28 dogify 0 条评论 4432 次浏览
php php require include use 与 autoload ## 引言 平常写 php 代码的时候,一直在使用 use 和 require,但是背后的为什么却不清楚,本文总结一下相关概念。 ## require 和 include 学习 php 时,开篇就会介绍这两个命令,主要目的是为了复用代码。举个例子,我们有个名为 `sum.php` 的文件,里面包含一个 `sum()` 函数,用于计算两数之和。因为这个函数可能很多地方都会用到,所以我们将其放在一个独立文件中,在需要使用此函数的地方用 require 或 include 命令将 `sum.php` 的内容引入。 阅读全文 2020-03-17 dogify 0 条评论 2671 次浏览