0

------平台 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

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

4

3 回答 3

0

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

刀片.php

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

网页.php

Route::post('city/update/{id}','Admin\CityController@update')->name('city.update');
于 2020-05-19T16:33:15.423 回答
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!');
    }

我希望它有帮助!

于 2020-05-19T16:41:35.297 回答
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');
于 2020-05-19T17:10:22.483 回答