我在更新关系模式的所有记录时遇到问题。相反,只有一个模型更新所有记录。我需要更新每条记录。
我有一个拥有"零售商"这个模型与"位置"有hasMany
的关系。模型。位置模型属于零售商模型。
位置模型为零售商提供地址。一些零售商有许多地点(地址)。我尝试了很多解决方案,但似乎无法使用。唯一有效的解决方案是使用first();
更新第一条记录,但我需要更新所有地址记录。我真的把头发撕掉了,我已经被困了4天了。我真的准备自杀了。任何帮助。请。
public function update(Request $request, $id)
{
$location = $request->only(
'street_number',
'street_address',
'city',
'state',
'postcode',
'country',
'longitude',
'latitude',
'country_code'
);
$insert = Location::where('id', $id);
$insert->update($location);
return Redirect::route('retailers.edit', $id)
->withInput()
->withErrors($validation)
->with('message', 'There were validation errors.')
;
}
答案 0 :(得分:0)
要更新所有相关位置记录,您应该在关系中使用 update()方法,如下所示:
$updatedLocationData = [
'country_code' => 123
];
$retailer->locations()->update($updatedLocationData);