php - 模型内部的特征
问题描述
例如,我有一个模型类。我希望它是Timestampable
。这意味着模型必须具有created_at
,updated_at
字段和吸气剂。
<?php
trait Timestampable {
protected $created_at;
protected $updated_at;
public function getCreatedAt() {}
public function getUpdatedAt() {}
}
class User extends Model {
use Timestampable;
protected $id;
protected $name;
}
可以吗?或者我必须将timestampable
字段移动到模型中?
在 Laravel 中,他们不会将字段放在特征中,而只是将其中的一些。当然,当这些字段存在于使用我们特征的类中时,它会起作用。但是我们在 IDE 自动补全方面失去了一些优势,并使我们的代码模棱两可。
解决方案
默认情况下,所有模型都已经拥有属性created_at
,并且updated_at
因为Illuminate\Database\Eloquent\Model
已经使用了Illuminate\Database\Eloquent\Concerns\HasTimestamps
定义getCreatedAtColumn
和getUpdatedAtColumn
方法HasTimestamps 方法 getCreatedAtColumn
您不必定义自己的HasTimestamps
,这并不重要,因为提供该行为的所有实现都已经存在
推荐阅读
- electron - 电子:process.defaultApp 和 app.isPackaged 之间的区别
- c - txm_module_object_allocate((void**)obj_ptr, sizeof(obj)) 是如何工作的?
- linux - 使用 DNS 延迟 CentOS 上的所有网络活动
- apache-kafka - 如何在使用 REST API 创建 Kafka 连接器时定义模式
- quire-api - 访问 Quire API:授权码已过期
- android - 获取当前正在运行的前台应用程序/进程的方法
- python - “setup.py develop” 安装 git 远程版本而不是本地版本并进行实时更改
- ios - 在 SwiftUI 中用文本遮罩矩形
- javascript - 我需要将对象转换为对象数组
- node.js - 如何使用 mongoose 和 node.js 更新 mongod 中存在的对象的子值?