Я хочу обменять порядок изображений ( Данные, полученные из angularjs / ui-sortable, поэтому массив $ newImgOrder представляет новый порядок .)
(array) $newImgOrder = ['test.jpeg', 'another.jpeg'];
Images::select('url')->where('project_id', '=', $args['id'])->get()
->each(function($img) use (&$newImgOrder) {
foreach ($newImgOrder as $item) {
$img->url = $item;
$img->save();
}
});
*ОБНОВЛЕНО = ПРАВИЛЬНО ДЛЯ ИСПОЛНЕНИЯ ЭТОГО ДЕЙСТВИЯ *
Спасибо @ Девон
Удален foreach + select ()
(array) $newImgOrder = ['test.jpeg', 'another.jpeg'];
Images::where('project_id', '=', $args['id'])->get()
->each(function($img) use (&$newImgOrder) {
$img->url = array_shift($item);
$img->save();
}
});
Вот краткая демонстрация того, чтоя хочу сделать:
Состояние таблицы перед действием
+---------+-------------+--------------+
| id | project_id | url |
+---------+-------------+--------------+
| 1 | 15 | another.jpeg |
+---------+-------------+--------------+
| 2 | 15 | test.jpeg |
+---------+-------------+--------------+
Ожидаемые результаты =
+---------+-------------+--------------+
| id | project_id | url |
+---------+-------------+--------------+
| 1 | 15 | test.jpeg |
+---------+-------------+--------------+
| 2 | 15 | another.jpeg |
+---------+-------------+--------------+
Фактические результаты =
+---------+-------------+--------------+
| id | project_id | url |
+---------+-------------+--------------+
| 1 | 15 | another.jpeg |
+---------+-------------+--------------+
| 2 | 15 | another.jpeg |
+---------+-------------+--------------+
В чем проблема с этой итерацией.Я пытался с двойным foreach, но я получил те же результаты ... Я что-то упускаю?Любая помощь будет принята с благодарностью.Спасибо.