这是我的TaskController,其中定义了done_at ()函数来存储完整的当前时间
public function complete($id)
{
$task = Task::create([
'done_at' => now(),
]);
return redirect()->route('tasks.index')->withSuccess('Done');
}这是我的web.php路由
Route::post('/tasks/complete', 'TaskController@complete');这是我的索引页面,其中有用于保存当前时间的提交按钮
<form action="{{ route('tasks.complete', $task->id) }}" method="post">
@csrf
<input type="submit">
</form>发布于 2021-04-05 19:43:33
您遗漏了路由的名称声明,如下所示:
Route::post('/tasks/complete', 'TaskController@complete')->name('tasks.complete');发布于 2021-04-06 02:23:36
注意:如果要添加新任务,请使用第一个任务;如果要更新现有任务,请使用第二个任务:
//-First:
TaskController:
public function complete() {
$task = Task::create([
'done_at' => now(),
]);
return redirect()->route('tasks.index')->withSuccess('Done');
}web.php
Route::post('/tasks/complete', 'TaskController@complete')->name('tasks.complete');您的视图文件(索引页):
<form action="{{ route('tasks.complete') }}" method="post">
@csrf
<input type="submit">
</form>//-Second:
或者,如果您需要在控制器中传递id参数,则应使用以下代码:
TaskController:
public function complete($id) {
$task = Task::findOrFail($id);
if ($task) {
$task->update([
'done_at' => now()
]);
return redirect()->route('tasks.index')->withSuccess('Done');
}
return redirect()->route('tasks.index')->withSuccess('Task No Found');
}web.php
Route::post('/tasks/complete/{id}', 'TaskController@complete')->name('tasks.complete');您的视图文件(索引页):
<form action="{{ route('tasks.complete', ['id' => $task->id]) }}" method="post">
@csrf
<input type="submit">
</form>发布于 2021-04-05 19:55:42
根据控制器中的complete()函数和表单操作,
您的路由应如下所示:
Route::post('/tasks/complete/{id}', 'taskcontroller@complete')->name('tasks.complete');https://stackoverflow.com/questions/66952439
复制相似问题