我需要一种更好的方法来更新表,例如:
|name |value
--------------------------------------
|cache_lifespan |240
|idle_time |900
|jump_menu |1
|listing |25
|system_off |1
以上是设置值,我把它们放在一个窗体中,有权限的用户可以更新它们。我在模型“setting”中使用以下方法来更新每个设置值,但我觉得这不是最好的方法。
public function updateSettings($fields)
{
Setting::where('name', 'system_off')->update(['value' => $fields['system_off']]);
Setting::where('name', 'listing')->update(['value' => $fields['listing']]);
Setting::where('name', 'jump_menu')->update(['value' => $fields['jump_menu']]);
Setting::where('name', 'cache_lifespan')->update(['value' => $fields['cache_lifespan']]);
Setting::where('name', 'idle_time')->update(['value' => $fields['idle_time']]);
cache()->forget('settings');
}
我试着用一个查询来更新所有设置。
1条答案
按热度按时间p5cysglq1#
因为您试图用不同的条件和不同的值更新同一个表,所以这是不可能的。
此外,您还尝试更新许多项,并且必须使用事务。
我可以建议你使用这个代码
如果不使用事务,可以使用此代码