如何验证laravel 5.4单选按钮?

Mas*_*sum 2 php forms validation radio-button laravel

这是我的单选按钮代码

<div class="radio">
  <label><input type="radio" name="gander" value="male">male </label>
  <label><input type="radio" name="gander" value="female">female</label>
</div>
Run Code Online (Sandbox Code Playgroud)

我的控制器代码是

   //validate this form
    $this->validate(request(),[

         'title' => 'required',
         'body'  => 'required',
         'gander'=> 'in:male,female' 

        ]);


    $post = new Post;

    $post->title = $request['title'];
    $post->body  = $request['body'];
    $post->status= $request['status'];
    $post->male  = $request['male'];
    $post->female= $request['female'];

    $post->save();

    //And then redirect to the home
    return redirect('blog');
}
Run Code Online (Sandbox Code Playgroud)

当我提交这种形式显示此错误SQLSTATE [23000]:完整性约束违规:1048列'男'不能为空(SQL:INSERT INTO poststitlebodystatusmalefemaleupdated_atcreated_at)值(SDF,sdfsfsd,0,,,2017年-03-01 13:09:54,2017-03-01 13:09:54))

这意味着两个单选按钮数据都需要数据库字段。在我的表中有以下字段“标题”,“身体”,“状态”,“男性”,“女性”,“ created_at”和“ updated_at”

我的问题是如何验证单选按钮以及如何使用单选按钮值插入数据?谢谢。

Sha*_*mad 6

如果性别是必填字段,则还应将所需的验证传递给gander属性,如下所示

'gander'=> 'required|in:male,female' 
Run Code Online (Sandbox Code Playgroud)

如果不是require字段,则在数据库表中使male列为空。

而且您的表格设计中还存在问题,而不是在名称为性别和类型bollean的列上将男性价值与男性价值,女性价值与女性价值相提并论,然后为男性设置0,为女性设置1。

如果您不想使用布尔值,则对性别使用enum数据类型。enum是您的最佳选择。