What is the best way to update multiple records in database using doctrine, symfony2?
I receive array of records ids which I have to update.
I want to assign to each record its index from received array to column show_order.
So if i receive array $array = array(22, 1, 5, 10) then I want to do
$i = 0;
foreach($array as $a) {
$record = $this->getDoctrine->getRepository('AcmeBundle:SomeEntity')->findOneById($a);
if ($record != null) $record->setOrder($i++);
}
$this->getDoctrine()->getEntityManager()->flush();
but it's horrible way, because for each record I do one SELECT, so number of queries is O(n).
How to do it better?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…