-----平台Laravel 7x。 --------
我陷入了一个简单的问题。我找不到错误。更新表单时,它会重定向到我不想要的错误URL,并且数据也不会更新。
表单操作网址:
method="POST" action="{{'city/update/'. $editCity->id}}"
路线:
Route::post('city/update/{id}','Admin\CityController@update');
控制器功能:
public function update(Request $request, $id)
{
$editCity=City::find($id);
$editCity->city_name=$request->city_name;
$editCity->save();
return redirect()->back();
}
当我单击更新时,它将转到此URL并显示404错误,我不希望这样做:
public/panel/city/edit/city/update/33
帮助我找出问题所在,我做错了什么。当我单击更新按钮并返回时,我想对其进行更新。
答案 0 :(得分:0)
改为使用名称路由。 因此您的代码将如下所示:
blade.php
method="POST" action="{{ route('city.update', $editCity->id) }}"
web.php
Route::post('city/update/{id}','Admin\CityController@update')->name('city.update');
答案 1 :(得分:0)
如果您的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!');
}
希望对您有帮助!
答案 2 :(得分:0)
在创建控制器时,您是否运行了这样的命令?:
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');