应用路由重定向错误的URL

时间:2020-05-19 16:16:38

标签: laravel laravel-7 laravel-controller laravel-route laravel-formrequest

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

我陷入了一个简单的问题。我找不到错误。更新表单时,它会重定向到我不想要的错误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

帮助我找出问题所在,我做错了什么。当我单击更新按钮并返回时,我想对其进行更新。

3 个答案:

答案 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');