现代的php框架都自带时间戳维护,Yii2也不例外,本文是在模型添加时间戳维护,并且自定义字段。
说明:使用gii创建模型基类,基类的命名空间为“common\models”,因为该基类为系统维护,所以自动添加时间戳的behavior就不在基类添加,而是在对应模块的模型下插入到behavior。
- 基类模型文件:common\models\Files.php
<?php
namespace common\models;
use Yii;
class Files extends \yii\db\ActiveRecord
{
//以下代码内容忽略
}
- 模块继承模型文件:api\modules\v1\models\Files.php
- 在自定义模块下的models创建用于继承基类模型的Files.php;
- 引入Yii的TimestampBehavior;
- 在模型内添加behavior,并且设置class为“TimestampBehavior::className()”,attributes内的“EVENT_BEFORE_INSERT”为插入数据时更新的时间戳字段,“EVENT_BEFORE_UPDATE”为更新数据时更新时间的字段,两个字段的定义可以根据数据表设计而设置。
<?php
namespace api\modules\v1\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use common\models\Files as FilesModel;
class Files extends FilesModel
{
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
FilesModel::EVENT_BEFORE_INSERT => ['create_time', 'update_time'],
FilesModel::EVENT_BEFORE_UPDATE => ['update_time'],
],
],
];
}
//以下代码内容忽略
}
网友评论