1、设置默认字段
数据入库时一般都需要创建时间和修改时间,创建一个 BaseModel,BaseModel 继承 Eloquent/Model
自定义 create_at、update_at 字段,其他 Model 继承 BaseModel
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
const CREATED_AT = 'create_time';
const UPDATED_AT = 'modify_time';
}
2、不需要记录修改时间怎么设置
最近做日志业务,只需要 created_at 字段就可以了,数据库不想添加 updated_at 字段。下面是解决方法:
解决方法
查看 Illuminate\Database\Eloquent\Model 后发现,有这样一行代码 use Concerns\HasTimestamps ,接下找到 trait HasTimestamps 看到 如下代码:
protected function updateTimestamps()
{
$time = $this->freshTimestamp();
if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) {
$this->setUpdatedAt($time);
}
if (! $this->exists && ! $this->isDirty(static::CREATED_AT)) {
$this->setCreatedAt($time);
}
}
/**
* Set the value of the "updated at" attribute.
*
* @param mixed $value
* @return $this
*/
public function setUpdatedAt($value)
{
$this->{static::UPDATED_AT} = $value;
return $this;
}
在对应的 Model 中设置 const UPDATED_AT = null 就可以了
成功的秘诀,在永不改变既定的目的~