Laravel时区设置
简介在做博客的过程中,发现updated_at为什么时间会少8个小时,原来这跟Laravel的时区有关。那么我们如何理解Laravel的created_at或updated_at两个字段是如何控制的呢?还有就是如果我们不想使用该功能又如何屏蔽呢?后面我们还将探究下Laravel相关源码。
在设计数据表的时候,已经通过Navicat工具创建了两个字段,created_at和updated_at。created_at字段默认为CURRENT_TIMESTAMP,updated_at字段默认为ON UPDATE CURRENT_TIMESTAMP;其实Mysql是可以控制created_at字段在创建时的时间作为值,而updated_at字段会根据更新时的时间随之变动。
但是当我们使用Laravel框架来操作数据表的时候,时间却不是依据Mysql的自有功能来设置的,而被Laravel框架给改变了,并且还少了8小时。如果要解决这个,就需要去设置Laravel框架的时区,在配置文件config/app.php中修改:
'timezone' => 'UTC',
只要将上面的UTC改为UTC或Asia/Shanghai
'timezone'='UTC',
设置
'timezone'='Asia/Shanghai',
那么从Laravel框架里的源码得知,Laravel确实是通过PHP代码来更新updated_at,
# vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasTimestamps.php
protected function updateTimestamps()
{
$time = $this->freshTimestamp();
if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) {
$this->setUpdatedAt($time);
}
if (! $this->exists && ! is_null(static::CREATED_AT) &&
! $this->isDirty(static::CREATED_AT)) {
$this->setCreatedAt($time);
}
}
从以上代码我们就可以得知,只要数据不存在就会设置created_at字段的值,存在与不存在都会去设置updated_at字段。所以将我们数据表设置的自有的机制给覆盖了。如果大家不想使用该功能,可以在模型中去掉Laravel自带的这种功能。只需要在每个模型文件中加上public $timestamps = false;如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* 该模型是否被自动维护时间戳
*
* @var bool
*/
public $timestamps = false;
}
#以上代码来源于Laravel文档,https://laravel-china.org/docs/laravel/5.6/eloquent/1403
top命令用于实时显示系统中进程占用资源的情况。该命令还可以按照CPU的使用、内存使用和执行时间对系统进程进行排序显示。同时top命令还可以通过交互命令进行设定显示
前面我通过了Python实现了网页截图并设置成Windows桌面背景,感觉Python编译打包非常麻烦,所以就考虑能否用golang进行实现,那么本文就是记录如何实现该功能的。
ScrollUp 是一个轻量级的 jQuery 插件,用于创建可轻松用于任何网站的可自定义的“滚动到顶部”功能。
在于前端攻城狮的兄弟们开发接口的时候,总会遇到一些奇怪的问题。比如IOS对某个字段要求要整数,如果PHP这边返回过去是字符串那么APP就会崩溃。虽然他们可以捕获异常,但是有些时候我们更想后端的攻城狮能否提供一种统一的数据类型,前端想怎么转换就是他们自己的事情,本文我们将给大家带来这方面的处理。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。