Save 29042026
CI Tests / test (push) Has been cancelled

This commit is contained in:
Dmitry Rashupkin
2026-04-29 15:22:30 +03:00
parent 22c6dbc6d8
commit 14345b2622
2 changed files with 35 additions and 4 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
vendor vendor
composer.lock composer.lock
.idea .idea
.history
+33 -3
View File
@@ -78,7 +78,12 @@ class Builder extends BaseBuilder
$statement = $this->client->select($query, $bindings); $statement = $this->client->select($query, $bindings);
$this->resolveConnection()->logQuery($query, $bindings, $this->getElapsedTime($start)); // ✅ Исправление: resolveConnection() отсутствует в этом пакете.
// Обёртка предотвращает падение, если метод когда-нибудь добавят или уберут
if (method_exists($this, 'resolveConnection')) {
$this->resolveConnection()->logQuery($query, $bindings, $this->getElapsedTime($start));
}
return $statement; return $statement;
} }
@@ -118,7 +123,33 @@ class Builder extends BaseBuilder
return $this; return $this;
} }
/**
* Добавляет сырое SQL-выражение в SELECT без автоматического экранирования ``.
* Необходимо для агрегатных функций: count(), avg(), uniq(), toStartOfDay() и т.д.
*/
public function selectRaw(string $expression, array $bindings = []): self
{
// Expression сообщает Grammar'у: "не трогай эту строку кавычками"
return $this->select(new Expression($expression));
}
/**
* Получает первую строку результата как ассоциативный массив или null.
* Аналог Eloquent::first()
*/
public function first(): ?array
{
$rows = $this->limit(1)->getRows();
return $rows[0] ?? null;
}
/**
* Получает значение одного поля из первой строки.
* Аналог Eloquent::value()
*/
public function value(string $column)
{
$row = $this->select([$column])->first();
return $row[$column] ?? null;
}
/** /**
* Note! This is a heavy operation not designed for frequent use. * Note! This is a heavy operation not designed for frequent use.
* @return Statement * @return Statement
@@ -231,5 +262,4 @@ class Builder extends BaseBuilder
], ],
); );
} }
} }