我有一个列出一些任务的表,其中有一列用于显示它们是否已完成。我添加了一个按钮来切换"已完成"列,但我似乎无法获得我选择更新的行。有人能告诉我哪里出错了吗?
我创建了路径,按钮和方法,这一切似乎都有效但数据库没有更新(现在我只需要将代码更改为#34;已完成"列为1 )。
路线:
Route::patch('tasks/complete/{id}', 'TaskController@updateCompleted');
Route::resource('tasks' , 'TaskController');
视图中的按钮:
{{ Form::open(array('action' => array('TaskController@updateCompleted', $task->id))) }}
{{ Form::hidden('_method', 'PATCH') }}
{{ Form::submit('Completed?', array('class' => 'btn btn-danger')) }}
{{ Form::close() }}
控制器:
public function updateCompleted($id)
{
$task = Task::findOrFail($id);
$task->completed == 1;
$task->update();
Session::flash('message', 'Task updated!');
return redirect('tasks');
}
谢谢!
答案 0 :(得分:0)
正如@rashad指出的那样,您需要使用一个=
来设置completed
而不是==
的值。
=
是一个作业运算符,因此使用tgo 赋值或设置值。
==
是相等运算符,因此用于比较值以查看它们是否相同。
然后,您需要拨打save()
而不是update()
。
以下是工作代码:
public function updateCompleted($id)
{
$task = Task::findOrFail($id);
$task->completed = 1;
$task->save();
Session::flash('message', 'Task updated!');
return redirect('tasks');
}