在 Yii2 中,你可以使用以下方式来自动添加和更新时间字段:
- 使用
beforeSave()
方法来在保存数据之前添加时间字段:
php">use yii\db\ActiveRecord;
use yii\behaviors\TimestampBehavior;
class YourModel extends ActiveRecord
{
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
'value' => function () {
return date('Y-m-d H:i:s');
},
],
];
}
}
上述代码中,我们使用了 TimestampBehavior
行为类来处理时间字段。通过在 attributes
配置中指定了要自动更新的时间字段,并在 value
中返回当前时间,即可完成自动添加和更新时间字段的操作。
- 另一种常用的方法是使用数据库的默认值定义时间字段,这样在插入新记录时,数据库将自动添加时间值,并且无需修改模型代码。在数据库表定义中,将时间字段的默认值设置为
current_timestamp
(MySQL)或CURRENT_TIMESTAMP
(PostgreSQL)或datetime('now')
(SQLite)等。
请根据你的具体需求选择适合的方法来实现自动添加和更新时间字段。以上代码示例是其中的一种常见实现方式。