简介 Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询...该属性决定日期被如何存储到数据库中,以及模型被序列化为数组或 JSON 时日期的格式: <?...delete 方法时,deleted_at 列将被设置为当前日期和时间,并且,当查询一个使用软删除的模型时,被软删除的模型将会自动从查询结果中排除。...例如,你可能经常需要获取最受欢迎的用户,要定义这样的一个作用域,只需简单在对应 Eloquent 模型方法前加上一个 scope 前缀。 作用域总是返回查询构建器实例: <?...举个例子,在 Eloquent 模型中定义一个 $dispatchesEvents 属性来映射模型生命周期中多个时间点与对应事件类: <?
关闭时间戳记录 public $timestamps = false; 获取模型数据 // Eloquent 的 all 方法返回模型表的所有结果 $flights = App\Flight::all(...('name', 'desc') ->take(10) ->get(); 获取单个模型 // 通过主键获取模型 $flight = App\Flight::find(1); // 获取匹配查询条件的第一个模型...例如, 你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密, 并且在 Eloquent 模型中访问时自动进行解密....你可以自定义哪些字段被自动调整修改, 甚至可以通过重写模型中的 $dates 属性完全禁止调整: class User extends Model { /** * 应该被调整为日期的属性...= App\User::find(1); return $user->disabled_at->getTimestamp(); 模型日期格式 默认情况下, 时间戳的格式是 Y-m-d H:i:s ,
经过一番调研之后发现了一个堪称神器的扩展:laravel-upsert 这个 Laravel 扩展为查询构建器和 Eloquent 添加了对 INSERT & UPDATE (UPSERT) 和 INSERT...行代码,优化后22行代码,代码行数少了3倍+ 查询sql的条数:优化前5条sql,优化后2条sql laravel-upsert 扩展的特性 安装 composer require staudenmeir...->upsert(...); 在 Eloquent 中,所有版本的 LumenHasUpsertQueries都需要该特性。...当然了还是有一些注意点和坑,下面分享一下 注意的问题 要根据需求添加唯一索引 根据官方文档中的说明,我们的model中必须添加这行代码,才能以Eloquent的方式用 use \Staudenmeir\...LaravelUpsert\Eloquent\HasUpsertQueries; 因为我们数据库的时间是int类型,不是laravel默认的时间格式,并且我们的插入时间和更新时间也不是laravel默认的字段
引言 前两期为了说明laravel框架提供的数据库操作能力,直接使用DB门面操作, 而没有引入更为强大的eloquent orm功能。...从本期开始,我们就分次把 eloquent的一些简要知识点,为大家提炼演示一下。主要以代码为主,配以简要说明。 ? 学习时间 Eloquent其实是一个 ActiveRecord 类型的 ORM。...,就是 findOrFail,如果找到就返回一个模型,找不到就返回默认错误页面。...如果返回的模型想要手动定制一下,那么在查询结果集中,使用Collection提供的格式化功能就好了。...你想要他们自动更新为当前系统时间,只需要添加这个配置项: public $timestamps = false; 存储的日期时间格式,也可以自定义: protected $dateFormat = 'Ymd
,简单来说,它会构建类与数据表之间的映射关系,从而建立起一个可在编程语言里使用的「虚拟对象数据库」。...属性为模型类指定使用哪个连接: protected $connection = 'connection_name'; 查询数据 日常开发中,大部分操作都是数据库中查询数据,Eloquent 模型了为我们提供了很多方法帮助我们从数据库中获取数据...如果你想要在单条记录返回结果为空时返回 404 响应(在控制器方法中可能需要用到类似操作),可以通过 firstOrFail 或者 findOrFail 方法在找不到对应记录时抛出 404 异常,从而简化代码编写...,就等同于掌握了 Laravel 中的所有数据库查询操作。...更新数据 通过模型类更新数据表记录也很简单: $post = Post::find(31); $post->title = '测试文章标题更新'; $post->save(); 更新时间 Eloquent
如何添加/编辑 Crontab 要在 crontab 中添加或更新作业,请使用以下命令。它将在编辑器中打开一个 crontab 文件,可以在其中添加/更新作业。...安排一个 cron 在选定的日期执行。 如果您需要安排任务仅在选定的日期内执行。下面的示例将在每个星期日和星期五下午 5 点运行。...安排一个 cron 在每个月的第一个星期日执行。 无法通过时间参数安排脚本仅在第一个星期天执行脚本,但我们可以使用命令字段中的条件来执行此操作。...将 Cron 结果重定向到指定的电子邮件帐户。 默认情况下,cron 将详细信息发送到调度 cron 的当前用户。...从文本文件恢复 cron: crontab -l 0 2 * * * /script/backup.sh 相关文章 Linux之crontab命令 linux之crontab使用技巧
本文最后更新于 19 天前,其中的信息可能已经有所发展或是发生改变。...---- 脚本思路 ---- 编写脚本文件,能够执行 git pull 命令以及 mkdocs build 构建命令。 对这些命令的执行结果和状态需要保存到相应的日志,以便查询执行状态。...由于后续 cron 定时任务执行时,不会携带用户的环境变量,因此在脚本中需要读入相应用户的配置文件和环境变量。...然后退出编辑,重新加载: sudo service cron reload 对于执行时间的设置,在 crontab 文件中,时间表达式由五个 * * * * * 字段组成,分别表示分钟、小时、日期、月份和星期几...对于时间表达式 * * * * *,每个字段的含义如下: 第一个字段:分钟(取值范围:0-59) * 表示每分钟都匹配,即每分钟触发任务。
当处理时间序列数据时,日期过滤器尤其有用。通过配置日期过滤器,可以指定日期字段的名称和格式,然后使用这个字段来比较事件的时间戳与当前时间。...,这里使用了日期格式化 query => '{"query": {"range": {"timestamp": {"lte": "now-30d"}}}}' # 查询条件,筛选时间戳早于30天前的文档...query参数定义了筛选条件,这里使用了range查询来筛选出时间戳字段timestamp早于当前时间减去30天的文档。...然后,在命令行中执行以下命令: bin/logstash -f delete_old_data.conf Logstash将开始读取Elasticsearch中符合筛选条件的旧数据,并应用日期过滤器。...注意时区问题:日期过滤器和滚动查询中的时间计算可能会受到时区设置的影响。确保Logstash和Elasticsearch的时区设置正确,并且与你的业务需求一致。
字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ?...默认情况下 locate 命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是 locate 所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb 每天会跑一次...显示或设定系统的日期与时间。...命令参数: -d 显示字符串所指的日期与时间。字符串前后必须加上双引号。 -s 根据字符串来设置日期与时间。字符串前后必须加上双引号。 -u 显示GMT。...: (1)显示当前所有进程环境变量及进程间关系 ps -ef (2)显示当前所有进程 ps -A (3)与grep联用查找某进程 ps -aux | grep apache (4)找出与 cron 与
字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ?...默认情况下 locate 命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是 locate 所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb 每天会跑一次...显示或设定系统的日期与时间。...命令参数: -d 显示字符串所指的日期与时间。字符串前后必须加上双引号。 -s 根据字符串来设置日期与时间。字符串前后必须加上双引号。 -u 显示GMT。...与 syslog 这两个服务有关的 PID 号码 ps aux | grep '(cron|syslog)' 29、top 命令 显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU
写在开头 最近发现自己记忆力严重下滑,很多sql命令,linux命令都记不住,特别是linux命令,很多命令参数很多,一段时间不用,再去使用就需要从网上重查了,很烦人,为此花了一些时间把之前笔记中的Linux...命令给整理了一下,汇总出30个常用的分享出来,下次再想不起来直接看这篇文章就行了。...-r 复制目录以及目录内所有的文件 -a 复制的文件与原文件时间一样 cp -ai a.txt test 复制a.txt文件到test目录下,保持原文件时间,如果test目录中已经存在a.txt文件,提示是否覆盖...,updatedb 由 cron daemon 周期性调用 locate 命令在搜寻较快,但最近才建立或刚更名的,可能会找不到 locate 与 find 命令相似,可以使用正则匹配查找 常用参数: -.../usr/bin 建立一个软链接 23、Linux指令-date 显示或设定系统的日期与时间 命令参数: -d 显示字符串所指的日期与时间,字符串前后必须加上双引号 -s 根据字符串来设置日期与时间
/etc/rsyslog.conf中 #####RULES######部分包定义日志消息保存位置的相关指令。每行左侧表示与指令匹配的日志消息的设备和严重性。...如果省略日期,则命令会假定日志为当天;如果省略时间部分,则假定为自00:00:00起的一整天,除了日期和时间字段外,这两个选项还接受yesterday,today和tomorrow作为有效日期的参数。...例如查询显示与systemd 单元文件 sshd.service 启动,并且PID为1182的进程相关的所有日志条目。...这些值可以再/etc/systemd/journald.conf中调节,日志文件大小的当前限制在 systemd-journald进程启动时予以记录,可通过下列命令进行查看,该命令显示journalctl...计算机可以通过互联网上的公共NTP服务获取正确的时间信息 timedatectl #命令简要显示当前的事件相关的系统设置,如系统的当前时间,时区和NTP同步设置。
,远程不允许登陆 2、影子文件:/etc/shadow # 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留...:history -c 该操作并不会清除保存在文件中的记录,因此需要手动删除.bash\_profile文件中的记录 检查端口连接情况: netstat -antlp | more 使用 ps 命令,...: 根据 pid 强行停止进程: kill -9 6071 注意:如果找不到任何可疑文件,文件可能被删除,这个可疑的进程已经保存到内存中,是个内存进程。...可以使用find命令来查找,如find /opt -iname “*” -atime 1 -type f 找出 /opt 下一天前访问过的文件。.../var/log/cron 与定时任务相关的日志信息/var/log/message 系统启动后的信息和错误日志/var/log/apache2/access.log apache access log
)" 注意:无密码只允许本机登陆,远程不允许登陆 2、文件:/etc/shadow # 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数...:history -c 该操作并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录 检查端口连接情况: netstat -antlp | more 使用 ps 命令,分析进程...: 根据 pid 强行停止进程: kill -9 6071 注意:如果找不到任何可疑文件,文件可能被删除,这个可疑的进程已经保存到内存中,是个内存进程。...可以使用find命令来查找,如find /opt -iname “*” -atime 1 -type f 找出 /opt 下一天前访问过的文件。.../var/log/cron 与定时任务相关的日志信息 /var/log/message 系统启动后的信息和错误日志 /var/log/apache2/access.log apache access log
引言 今天说一个细分的需求,在模型中,或者使用laravel提供的 Eloquent ORM 功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写? 本文通过几个例子,为大家梳理一下。...学习时间 假设有一个模型 Reservation,我们查询某个日期的预订条目数,首先构造日期字符串,使用内置函数: $now = date('Y-m-d'); 返回当前日期。...: select * from table_name where reservation_from = $now 只会返回日期比较相等的条目。...to 在laravel中你可以使用 whereBetween 这个查询子句。...当然了,上面的方法是在SQL中直接进行筛选,如果查询结果限制的条目本身比较少,也能充分利用索引,所以不担心查询的速度,那么我们可以在查询完成后,在返回的 Eloquent Collection 集合上,
在模板中,我们定义了索引的设置、映射和别名等。一旦使用创建索引的命令,只要索引的名称匹配logs-,就能够自动匹配这个模板,进行索引的设置。...2.3、应用模板 创建一个新的索引,索引名为"logstash-2023.03.01"的索引,它符合"logstash-*"模式,并且具有与模板中定义的相同的字段映射、分片数等设置。..."的索引,并将其日期设置为2023年3月9日,同样匹配"logstash-*"模式,自动应用模板。...注意要将命令中的"localhost:9200"替换为Elasticsearch实例的实际地址。...2.4、删除模板 使用DELETE命令来删除模板,语法如下: DELETE _template/my_template 在上面的代码中,我们使用DELETE命令来删除名称为“my_template”的模板
本文最后更新于 874 天前,其中的信息可能已经有所发展或是发生改变。 1. pom <!...表达式 Cron 表达式是一个字符串,分为 6 或 7 个域,每一个域代表一个含义 corn 从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份 Cron 有如下两种语法格式:...可用在所有字段中,表示对应时间域的每一个时刻,例如,在分钟字段时,表示“每分钟”; 问号(?)...但必须注意关联的匹配日期不能够跨月,如你指定 1W,如果 1 号是星期六,结果匹配的是 3 号星期一,而非上个月最后的那天。...它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。例如 5C 在日期字段中就相当于日历 5 日以后的第一天。在星期字段中相当于星期日后的第一天。
在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务。 1、at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次。...第六部分表示要执行的任务 关于时间设置的前五部分中,除了*表示当前部分的任意时间外,还支持另外三个符号/、,、-分别表示每隔、时间点A和时间点B、时间点A到时间点B。...关于环境变量更多的内容,将在shell编程的文章里详细说明。 对于系统级别的定时任务,这些任务更加重要,大部分linux系统在/etc中包含了一系列与 cron有关的子目录:/etc/cron....上一篇文章中我们提到了systemd中服务单元的概念,在这里我们需要用到其中的两种:.service和.timer。其中.service负责配置需要运行的任务,.timer负责配置执行时间。...,这些内容超出了本篇的范围,在以后的文章中如果涉及到相关的内容,会有相应的介绍。
Linux入门002 | 看日期、时间换算和定时作业 前言 在Linux世界里,日期与时间不仅是系统运行的脉络,更是众多命令行操作的核心要素。...无论是追踪日志、管理备份,还是安排定时任务,对日期和时间的精准操控都是提升工作效率的关键。本期文章将揭示Linux指令中与日期相关的实用技巧和魔法般的组合,助您轻松驾驭时间,让命令行工作如虎添翼。...一、获取当前日期与时间 最基础也最常用的日期时间命令是 date。简单执行 date 即可显示当前系统时间: In [31]: !...: 通过组合 -newer 选项与一个参考文件(或日期标记文件)来定位在指定日期之后修改的文件: In [38]: !...计划任务是Linux管理中的重要一环,cron 是实现定时任务的瑞士军刀。
领取专属 10元无门槛券
手把手带您无忧上云