美文网首页Yii的奇淫技巧
Yii2 模型添加自动维护时间戳

Yii2 模型添加自动维护时间戳

作者: 0661 | 来源:发表于2020-02-21 13:30 被阅读0次

    现代的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
    1. 在自定义模块下的models创建用于继承基类模型的Files.php;
    2. 引入Yii的TimestampBehavior;
    3. 在模型内添加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'],
                    ],
                ],
            ];
        }
          //以下代码内容忽略
    }
    

    相关文章

      网友评论

        本文标题:Yii2 模型添加自动维护时间戳

        本文链接:https://www.haomeiwen.com/subject/crrcqhtx.html