我正在使用Laravel和jQuery UI Sortable制作带有可排序照片的图库。
我在控制器中的函数得到一个很好的数组:
$items = [0 => 22, 1 => 25, 2 => 45];
但是在一个画廊中会有大约150到200张照片。有没有机会设置一个DB查询而不是150 - 200?因为我的控制器目前正在做这件事......
<?php
foreach($photos['item'] as $position => $id){
Photo::where('id', $id)->update(['position' => $position]);
}
但它创建了大约150 - 200个数据库查询,这很糟糕。
编辑#1
基本上我需要这样的东西(带有id和位置的两个相应数组):
$ids = [22, 24, 25, 34];
$positions = [0, 1, 2, 3];
Photos::where('id', $ids)->update(['position'] => $positions);
但我找不到任何关于这种方法的内容。