Я хочу иметь класс репозитория, который может выполнять каждый запрос «SELECT»
который я ввожу, случайный запрос извне.
И я не хочу указывать столбцы, которые хочу получить из этого собственного запроса.
Обычно все используют этот код:
$sql = 'select column_one, column_two from table';
$rsm = new ResultSetMapping();
$rsm->addScalarResult('column_one', 'columnOne');
$rsm->addScalarResult('column_two', 'columnTwo');
$query = $this->getEntityManager()->createNativeQuery($sql, $rsm);
$result = $query->getResult();
Но в моем случае я не могу указать «column_one» или «column_two»,
потому что SQL-запрос и столбцы будут разными.
И без $rsm->addScalarResult('column_one', 'columnOne') я не получаю никаких результатов.
Как я могу получить результат без указания столбцов






Если вы не хотите настраивать предопределенный набор результатов, вам следует сделать это, как в примере здесь: https://symfony.com/doc/current/doctrine.html#querying-with-sql
$conn = $this->getEntityManager()->getConnection();
$sql = '
SELECT * FROM product p
WHERE p.price > :price
ORDER BY p.price ASC
';
$resultSet = $conn->executeQuery($sql, ['price' => $price]);
// returns an array of arrays (i.e. a raw data set)
return $resultSet->fetchAllAssociative();
Я не думаю, что NativeQuery подойдет вашим требованиям, поскольку он основан на идее сопоставления результатов с известным объектом. Если вы заранее ничего не знаете, каким будет запрос, вы не сможете выполнить это сопоставление.