【发布时间】:2015-06-09 04:25:37
【问题描述】:
我一直在更新具有“hasMany”关系的 eagerloaded 模型。
我有一个这样的模型:
class UserGroup extends Model
{
public function enhancements()
{
return $this->hasMany('App\UserGroupEnhancement');
}
}
我的控制器将 $userGroup 传递给视图,如下所示:
$userGroup = $this->userGroup->with('enhancements')->whereId($id)->first();
然后在我看来我有
@foreach($userGroup->enhancements as $enhancement)
<label>{{$enhancement->type}}</label>
<input class="form-control" name="enhancements[{{$enhancement->id}}][price]" value="{{$enhancement->price}}">
@endforeach
更新时,如何更新增强关系中的所有记录?它被传递回多个数组。我目前正在做这样的事情。
public function update($id)
{
$userGroup = $this->userGroup->findOrFail($id);
$enhancement = \Input::get('enhancements');
if (is_array($enhancement)) {
foreach ($enhancement as $enhancements_id => $enhancements_price) {
$userGroup->enhancements()->whereId($enhancements_id)->update($enhancements_price);
}
}
}
有没有一种方法可以在不需要 foreach 循环的情况下做到这一点?我看到了 push() 方法,但似乎只适用于单个数组。
【问题讨论】: