更新关系问题

时间:2016-08-02 15:29:16

标签: php laravel laravel-5 eloquent foreign-keys

我在更新关系模式的所有记录时遇到问题。相反,只有一个模型更新所有记录。我需要更新每条记录。

我有一个拥有"零售商"这个模型与"位置"有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.')
     ;
  }

1 个答案:

答案 0 :(得分:0)

要更新所有相关位置记录,您应该在关系中使用 update()方法,如下所示:

$updatedLocationData = [
  'country_code' => 123
];

$retailer->locations()->update($updatedLocationData);