0

2 つのテーブル (City と Area) があります。市には多くの地域があります。それで、データの追加と削除に成功しました。しかし、編集および更新中に複数のエラーに直面しています。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); }

私は新しい学習者なので、間違ったコードを見つけるためにこれらのファイルで立ち往生しています。

4

0 に答える 0