如何使用按钮切换布尔值?

时间:2017-01-30 23:11:46

标签: laravel laravel-5

我有一个列出一些任务的表,其中有一列用于显示它们是否已完成。我添加了一个按钮来切换"已完成"列,但我似乎无法获得我选择更新的行。有人能告诉我哪里出错了吗?

我创建了路径,按钮和方法,这一切似乎都有效但数据库没有更新(现在我只需要将代码更改为#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');

}

谢谢!

1 个答案:

答案 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');

}