Я создал модель redis, которая должна хранить статистику следующим образом:
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use \yii\redis\ActiveRecord;
use \yii\redis\ActiveQuery;
class StatsModel extends ActiveRecord
{
public function attributes()
{
return ['id', 'hits', 'user', 'ua', 'ip','os'];
}
public function rules()
{
return [
['user', 'required'],
['user','string'],
['ip', 'required'],
['ip', 'integer'],
['hits', 'integer'],
['ua','string'],
['os','integer']
];
}
public static function total_user_hits($username)
{
$query = new ActiveQuery($this);
$query->find()->where('user = '.$user)->all();
}
public static function getDb()
{
return \Yii::$app->db_redis;
}
}
Теперь я пытаюсь создать статическую функцию, которую я могу использовать, чтобы подсчитать все эти hits
значение для конкретного user
в Redis.Я создаю $query = new ActiveQuery($this);
каждый раз в функции, но как можно инициализировать только одну копию запроса, чтобы всегда использовать его?Если я делаю это как свойство класса:
public $query = new ActiveQuery($this);
Я получаю ошибку expression is not allowed as field default value