DbQueryDependency и count

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

DbQueryDependency и count

Сообщение Brainfuck »

Когда я пытаюсь использовать DbQueryDependency с методом count все падает с ошибкой о неверном синтаксисе sql. Например

Код: Выделить всё

SELECT COUNT() FROM `articles` WHERE `id`='1'
Вся соль в \yii\caching\DbQueryDependency на 106 строке.

Код: Выделить всё

private function executeQuery($query, $db)
{
	if ($this->method === null) {
		return $query->one($db);
	}
	if (is_string($this->method)) {
		return call_user_func([$query, $this->method], $db);
	}
	return call_user_func($this->method, $query, $db);
}
У метода count как известно два параметра

Код: Выделить всё

public function count($q = '*', $db = null)
А он забивает переменную $q значением null передавая туда переменную $db. Как думаете это баг? Или просто нельзя использовать эту зависимость с методом count? Я конечно могу юзать \yii\caching\DbDependency, но это менее удобно :|
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: DbQueryDependency и count

Сообщение yiijeka »

> Когда я пытаюсь использовать DbQueryDependency с методом count

Пример вашего кода где можно увидеть?
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Re: DbQueryDependency и count

Сообщение Brainfuck »

yiijeka писал(а): 2018.08.02, 08:26 > Когда я пытаюсь использовать DbQueryDependency с методом count

Пример вашего кода где можно увидеть?

Код: Выделить всё

$cacheProperties = [
    'dependency' => [
        'class' => \yii\caching\DbQueryDependency::class,
        'query' => $query,
        'method' => 'count'
    ],
    'duration' => 60 * 60 * 24
];

if ($this->beginCache($key, $cacheProperties)) {
    // ...

    $this->endCache();
}
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: DbQueryDependency и count

Сообщение yiijeka »

Баг
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: DbQueryDependency и count

Сообщение yiijeka »

Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Re: DbQueryDependency и count

Сообщение Brainfuck »

yiijeka писал(а): 2018.08.02, 12:57 https://github.com/yiisoft/yii2/issues/16593
Ок, буду ждать исправления! :)
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: DbQueryDependency и count

Сообщение yiijeka »

Как быстрое решение можно

'method' => function (QueryInterface $query, mixed $db) {
return $query->count('*", $db);
}
Ответить