【问题标题】:Laravel: Call to undefined method save()Laravel:调用未定义的方法 save()
【发布时间】:2015-06-10 11:15:29
【问题描述】:
我想更新我的所有记录,其中名称与我引用它的名称类似。
但是我收到一个错误提示 Call to undefined method save()
这是我的代码
$section = Section1::where('name', 'like', 'ss123')->get();
$section->name = Input::get('name');
请帮忙:(
【问题讨论】:
标签:
laravel
laravel-4
eloquent
laravel-5
【解决方案1】:
$section = Section1::where('name', 'like', 'ss123')->get() 返回一个集合(想想array)。
因此,您应该使用foreach 遍历集合并将保存应用到集合中的每个对象,如下所示:
foreach($section as $s)
{
$s->name = Input::get('name');
$s->update();
}
再一次,这对 DB 不太友好。
因此,在您的情况下,最合适的操作将是大规模更新:
Section1::where('name','like','ss1213')->update(['name'=>Input::get('name')]);
【解决方案2】:
尝试dd($section)并找到可用的方法来防止调用未定义的方法。
我假设你使用的是$section->save();
如果你想更新,
使用$section->touch();
或$section->update(array('name' => Input::get'name'));