2016-05-16 75 views

回答

2

當使用Active Record時,不應該直接在數據庫中執行更新。首先拉從數據庫中的記錄,然後更新它:

Model::where(['x' => 1, 'y' => 2])->first()->update([...]); 

如果改爲直接做更新的數據庫,沒有任何的ORM的功能會觸發(如點火事件或感人的父母)。

1

更新所有的行,其對應的條件:

Model::where("x",1)->where("y",2)->update(array('key' => 'new_value', ...)); 

第一行,其對應的條件:

Model::where("x",1)->where("y",2)->first()->update(array('key' => 'new_value', ...)); 
0

當然,只是讀取該行,然後更新像往常一樣。

SomeModel::where('somecondition', 'somevalue') 
     ->where('someothercondition', 'someothervalue') 
     ->first() 
     ->update(['somecolumn' => 'somenewvalue']);