定制 sensetivity/yii2-changelog-behavior 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

sensetivity/yii2-changelog-behavior

最新稳定版本:v1.1.0

Composer 安装命令:

composer require sensetivity/yii2-changelog-behavior

包简介

Simple changelog behavior with diff highlight for yii2 models

README 文档

README

Simple changelog behavior with diff highlight for yii2 models

Installation

1- Install package via composer:

composer require sensetivity/yii2-changelog-behavior "*"

2- Run migrations:

yii migrate --migrationPath=@vendor/sensetivity/yii2-changelog-behavior/src/migrations

Usage

1- Add ChangeLogBehavior to any model or active record:

public function behaviors()
{
    return [
        ...
        [
            'class' => Sensetivity\ChangeLog\ChangeLogBehavior::class,
            'excludedAttributes' => ['updated_at', 'created_at'],
        ],
        ...
    ];
}

Attention: Behavior watches to "safe" attributes only. Add attributes into excludedAttributes if you don't want to log its changes.

2- Add ChangeLogListWidget to view:

 echo Sensetivity\ChangeLog\ChangeLogListWidget::widget([
     'model' => $model,
 ])

3- Add custom log:

$model->addCustomLog('hello world!', 'hello_type')

Example

Model Post

/**
 * @propertu int id
 * @property int created_at
 * @property int updated_at
 * @property string title
 * @property int rating
 */
class Post extends yii\db\ActiveRecord {
    
    /**
     *  @inheritdoc
     */
    public function behaviors()
    {
        return [
            [
                'class' => Sensetivity\ChangeLog\ChangeLogBehavior::class,
                'excludedAttributes' => ['created_at','updated_at'],
            ]
        ];
    }
    
}

View post/view.php

use Sensetivity\ChangeLog\ChangeLogListWidget;
use app\models\Post;

/**
 *  @var Post $model
 */
echo DetailView::widget([
    'model' => $model,
    'attributes' => [
        'id',
        'title',
        'rating',
        'created_at:datetime',
        'updated_at:datetime',
    ],
]);

echo ChangeLogListWidget::widget([
    'model' => $model,
]);

History

Controller PostController

use Sensetivity\ChangeLog\actions\ChangeLogAction;
use app\models\Post;

    /**
     * {@inheritdoc}
     */
    public function actions()
    {
        return [
            'changelog' => [
                'class' => ChangeLogAction::class,
                'modelClass' => Page::class,
            ],
        ];
    }

View post/view.php

<?= Html::a('Changelog', ['changelog', 'id' => $model->id], ['class' => 'btn btn-warning']) ?>

统计信息

  • 总下载量: 1.64k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-11-23