应用路由重定向错误 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');
------平台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');