单一复选框形式Laravel 5.5

时间:2018-01-08 17:53:49

标签: laravel laravel-5.5

我正在网页上工作,用户可以点击复选框;任何用户都可以单击该复选框,所有用户查看时结果都相同。因此,如果用户A选中该框,则用户B将其视为已选中。如果用户B然后取消选中它,则用户A将其视为未选中。

我可以通过复选框显示数据库中的值,但是当用户点击复选框时,我似乎无法在数据库中更改和更新值。

我的刀片布局如下:

<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']);

编辑:我已将其更新为包含该名称,但我仍遇到同样的问题。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

设置名称及其值

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