Невозможно изменить INDEXBY для функций findAll () и findBy () - PullRequest
0 голосов
/ 05 февраля 2020

С Doctrine и Symfony 5 я хочу изменить INDEX BY для моих запросов с функциями findAll() и findBy(). Я хотел бы, чтобы ключи таблицы результатов были просто идентификаторами.

// Current result
[
    0 => Post {
        'id' => 5,
        'name' => 'Test 5',
    },
    1 => Post {
        'id' => 6,
        'name' => 'Test 6',
    },
]
// Desired result :
[
    5 => Post {
        'id' => 5,
        'name' => 'Test 5',
    },
    6 => Post {
        'id' => 6,
        'name' => 'Test 6',
    },
]

Я знаю, что могу использовать createQueryBuilder('post', 'post.id'), но в этом случае я теряю fetch = EAGER, так как сам делаю запросы .

Возможно, единственным решением является использование foreach () для изменения ключей каждого запроса findAll() и findBy(), но я считаю его тяжелым.

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете изменить метод findBy или findAll:

Создать foreach ($results as $result) следующим образом:

$newResult = [];
$results = $repo->findAll();
foreach ($results as $result) {
    $newResult[$result->getId()] = $result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...