单个复选框表单 Laravel 5.5

Single Checkbox Form Laravel 5.5

我正在开发一个用户可以点击复选框的网页;任何用户都可以点击复选框,所有用户查看的结果都是一样的。因此,如果用户 A 选中该框,用户 B 将看到它已选中。如果用户 B 然后取消选中它,用户 A 将看到它未选中。

我可以获取复选框以显示来自数据库的值,但是当用户单击该复选框时,我似乎无法获取要在数据库中更改和更新的值。

我的 blade 布局如下所示:

<form method="POST" action="{{ action('QuestionController@answered', $question->id) }}"  role="form">
     {{ csrf_field() }}
     <input type="checkbox" id="answered" name="answered" value="0" @if($question->answered == 1) checked @endif> Answered
</form>

我的控制器中的函数如下所示:

public function answered(Request $request, $id)
    {

        $request->request->add(['answered_userid' => $this->userId]);
        $this->validate($request, [
             'answered' => 'required',
             'answered_userid' => 'required'

        ]);
        Question::find($id)->update($request->all());
    }
}

而且,在我的路线文件中,我有这个:

Route::post('questions/answered', ['as' => 'questions.answered', 'uses' => 'QuestionController@answered']);

编辑:我已经更新它以包含名称,但我仍然 运行 遇到同样的问题。

您必须在输入中设置一个名称。该请求将使用输入的 name 作为参数:

<input type="checkbox" name="answered" id="answered" value="0" @if($question->answered == 1) checked @endif> 

设置名称及其值

<input type="checkbox" name='answered' {{$question->answred ==1 ? Value="1" checked : value="0"}}>