应用路由重定向错误 URL

Apps route redirecting the wrong URL

------平台Laravel 7x。 --------

我陷入了一个简单的问题。我找不到错误。当我更新表单时,它会重定向到我不想要的错误 URL,并且数据不会更新。

表单操作url:

 method="POST" action="{{'city/update/'. $editCity->id}}"

form image

路线:

Route::post('city/update/{id}','Admin\CityController@update');

web route

来自控制器的功能:

public function update(Request $request, $id)
    {
        $editCity=City::find($id);
        $editCity->city_name=$request->city_name;
        $editCity->save();
        return redirect()->back();
    }

function from controller

当我点击更新时,它会转到 URL 并显示我不想要的 404 错误: public/panel/city/edit/city/update/33

帮我找出问题所在,我哪里做错了。我想在单击更新按钮并 return 返回时更新它。

改为使用名称路由。 所以你的代码看起来像:

blade.php

method="POST" action="{{ route('city.update',  $editCity->id) }}"

web.php

Route::post('city/update/{id}','Admin\CityController@update')->name('city.update');

如果您的 CityController 是资源控制器,您应该尝试以下方法:

Route: web.php

Route::resource('city', 'Admin\CityController');   
Form: HTML

<form action="{{route('city.update',$editCity->id)}}" method="post">
Controller: CityController.php

public function update(Request $request, $id)
    {
        $editCity=City::find($id);
        $editCity->city_name=$request->city_name;
        $editCity->save();
        return back()->with('success','city added successfully!');
    }

希望对您有所帮助!

在创建控制器时,您是否运行这样的命令?:

php artisan make:controller Admin\CityController --resource

您应该将控制器创建为资源控制器,然后声明它

在你的路线中是这样的:

Route::resource('city', 'Admin\CityController');  

Ps:确保在 web.php 中删除,您的旧路线:

Route::post('city/update/{id}','Admin\CityController@update')->name('city.update');