【发布时间】:2021-01-06 23:46:03
【问题描述】:
我正在使用 Laravel 7,并且一直试图通过我视图中的按钮启动 Controller 方法。我正在使用带有简单 a 标签的表单,但不确定我如何处理它是否是最好的方法。此外,我在尝试它的方式上遇到了错误。错误是:
Too few arguments to function App\Http\Controllers\TasksController::finished(), 1 passed in C:\laragon\www\taskapp\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54 and exactly 2 expected
我真的很困惑如何通过单击按钮调用方法。我要做的是(单击按钮时)将我的数据库中名为$task->task_status 的项目的状态更改为“完成”。
在主视图的表格中,我有一个这样的表格:
<td>
<form method="POST" action="/tasks/{{$task->id}}">
{{ csrf_field() }}
{{ method_field('POST') }}
<div class="ml-5">
<a href="{{ route('finished') }}" class="btn btn-success btn-sm"><i class="fa fa-check"></i></a>
</div>
</td>
在我的 web.php 中,我有:
Route::get('/finished/{id}', 'TasksController@finished')->name('finished');
在我的 TasksController 中,我有以下内容:
public function finished(Request $request, $id) {
$task = Task::find($id);
dd($task);
$task->task_status = $request['task_status'] = 'Completed';
$task->save();
return redirect('home')->with('success', 'Task Completed and now viewable in Completed Tasks!');
}
如果有人能告诉我一个更好的方法来完成这个(不使用 axaj),我将不胜感激。 提前谢谢你。
【问题讨论】: