我有两张桌子(城市和地区)。这个城市有很多地区。所以我已经成功地添加和删除了数据。但是我在编辑和更新时遇到了多个错误。我刚刚开始学习 Laravel。我使用了资源控制器,但在声明路由时遇到了问题,所以我也尝试了名称路由。
我遇到的这个错误:Trying to get property 'id' of non-object
并指示表单的路由ID。这是$editArea->id
。这是我的代码。
web.php 路由:
Route::resource('area','Admin\AreaController');
Route::get('area/edit/{id}','Admin\AreaController@edit')->name('area.edit');
Route::post('area/update/{id}','Admin\AreaController@update')->name('area.update');
编辑按钮:<a href="{{route('area.edit', $row->id)}}">Edit</a>
区域控制器:
public function edit(Area $area, $id)
{
$editArea= Area::find($id);
$cityno= City::orderBy('city_name', 'asc')->get();
return view('admin.editArea', compact('editArea','cityno'));
}
public function update(Request $request, Area $area, $id)
{
$editArea=Area::find($id);
$editArea->city_id=$request->city_id;
$editArea->area_name=$request->area_name;
$editArea->save();
}
编辑表格:
<form method="POST" action="{{route('area.update', $editArea->id)}}">
@csrf
@method('put')
<select name="city_id">
@foreach($cityno as $row)
<option value="{{$row->id}}" >{{ucwords($row->city_name)}}</option>
@endforeach
</select>
<input type="text" name="area_name" value="{{$editArea->area_name}}">
<button type="submit">Update Area</button>
</form>
面积模型:
public function city(){
return $this->belongsTo(City::class,'city_id');}
城市模型:
public function area(){
return $this->hasMany(Area::class); }
由于我是一个新学习者,我被困在这些文件中以找到我的错误代码。