首页 > 解决方案 > Laravel 8 中的 put 方法没有任何更新

问题描述

我目前正在 Laravel 8 中创建一个简单的待办事项列表,并希望能够更新列表中的项目。我的代码没有出现任何错误,但当我按下提交按钮时也没有任何变化。

index.blade.php:

<form action="{{ route('index.update', $task->id) }}" method="POST">
   @csrf
   @method('PUT')
   <td><input type="text" name="content" value="{{ $task->content }}" id=""></td>
   <td><input type="submit" value="Update"></td>
</form>

网页.php:

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TaskController;

Route::resource('index', TaskController::class);

任务控制器.php:

public function update(Request $request, Task $task)
{
    $request->validate([
        'content' => 'required',
    ]);
    $task->update($request->all());

    return redirect('index');
}

标签: phplaravellaravel-8

解决方案


正如@rwd 所说,问题出在路由定义上。将其更改为:

Route::resource('tasks', TaskController::class);

然后在表格中:

<form action="{{ route('tasks.update', $task->id) }}" method="POST">

推荐阅读