Exemplo n.º 1
0
 /**
  * Invalidate cache when update model
  * @param bool $insert
  * @param array $changedAttributes
  */
 public function afterSave($insert, $changedAttributes)
 {
     if (!$insert) {
         $cmd = self::find()->byRoute($this->route)->createCommand();
         $cacheKey = [Command::className(), 'fetch', null, self::getDb()->dsn, self::getDb()->username, $cmd->rawSql];
         Yii::$app->cache->delete($cacheKey);
     }
     parent::afterSave($insert, $changedAttributes);
 }
Exemplo n.º 2
0
<?php

use yii\base\Event;
use yii\db\ActiveRecord;
use yii\db\Command;
use backend\models\SqlRecord;
use common\helpers\EasyHelpers;
Event::on(Command::className(), Command::BEFORE_EXECUTE, function ($event) {
    $userId = \Yii::$app->user->id ?: EasyHelpers::pidDecrypt(\Yii::$app->request->_get('usercode', ''));
    if (!$userId) {
        return false;
    }
    $sql = $event->sender->rawSql;
    if (strtolower(substr(trim($sql), 0, 22)) == 'insert into sql_record') {
        return false;
    }
    SqlRecord::saveSql($userId, $sql);
    return;
});