【发布时间】:2017-01-31 09:10:42
【问题描述】:
我有一张表格,其中列出了一些任务,并有一列显示它们是否已完成。我添加了一个按钮来切换“已完成”列,但我似乎无法获得我选择更新的行。谁能告诉我哪里出错了?
我已经创建了路由、按钮和方法,这一切似乎都可以工作,但数据库没有更新(现在我只有将“已完成”列更改为 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');
}
谢谢!
【问题讨论】:
-
public function updateCompleted($id)...尝试返回$id看看到底返回了什么 -
返回
$id为我单击按钮所在的行提供了正确的 id 值。 Flash 消息显示,页面重定向,但$task->completed == 1; $task->update();似乎没有做任何事情...... -
你应该写
save而不是update -
感谢您的建议,但我已经尝试过了,但没有任何区别。
-
你又犯了一个错误:
$task->completed == 1;。仅使用 2 中的一个。$task->completed = 1;