2017-05-02 20 views
1

LaravelとJQuery UI Sortableを使用してソート可能な写真でギャラリーを作成しています。1つのDBで複数の行(異なるデータ)を更新する方法Laravel

$items = [0 => 22, 1 => 25, 2 => 45]; 

をしかし、あるギャラリーで約150〜200の写真があるでしょう:コントローラで

My機能は、素敵な配列を取得します。

150-200の代わりに1つのDBクエリを設定する可能性はありますか?私のコントローラは現時点でこれを作成しています:

foreach($photos['item'] as $position => $id){ 
     Photo::where('id', $id)->update(['position' => $position]); 
    } 

しかし、それは約150-200のDBクエリを作成します - ひどいです。

編集#1

[OK]を基本的に私はこのような何か(IDと位置を持つ2つの対応する配列)が必要です。

$ids =  [22, 24, 25, 34]; 
$positions = [0, 1, 2, 3]; 

Photos::where('id', $ids)->update(['position'] => $positions); 

をしかし、私はこのアプローチについては何も見つけることができません。

+0

が「大量更新」されています - https://laravel.com/docs/5.3/eloquent#updates希望しませんか? – splash58

+0

あまりありません。私は異なる条件で多くの行を見つけ、それらに新しいデータを入れる必要があります。 –

+0

例では、ID 22が位置0で更新され、ID 24が位置1などで更新されるとしますか? – Samsquanch

答えて

0

ここをクリックしてください:Eloquent model mass update

基本的には、一括または一括更新を探しています。

関連する問題