如何验证 Laravel 5.4 单选按钮?

Posted

技术标签:

【中文标题】如何验证 Laravel 5.4 单选按钮?【英文标题】:How to validate Laravel 5.4 radio button? 【发布时间】:2017-07-20 20:16:45 【问题描述】:

如何在 Laravel 5.4 中验证我的单选按钮?

<div class="radio">
    <label><input name="gander" type="radio" value="male">male </label>
    <label><input name="gander" type="radio" value="female">female</label>
</div>

控制器

/* 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();

return redirect('blog');

当我提交表单时,我收到以下错误。

SQLSTATE[23000]:违反完整性约束:1048 列“男性” 不能为空(SQL:插入poststitlebodystatusmale, female, updated_at, created_at) 值 (sdf, sdfsfsd, 0, , , 2017-03-01 13:09:54, 2017-03-01 13:09:54))

这意味着两个单选按钮的数据都需要数据库字段。在我的表中有这些字段:'title'、'body'、'status'、'male'、'female'、'created_at' & 'updated_at'。

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

【问题讨论】:

为什么malefemale 有两个差异字段???你能详细说明吗?你可以简单地取一个字段gender。并填写值是男性还是女性。你的方式是错误的!大不 tnx prakash 显示我的错误,。现在我通过 tinyinteger 数据类型创建我的模式字段。现在它的作品。 太棒了!!!祝你好运 【参考方案1】:

错误信息与验证无关。验证通过,您可以正确执行。但是你的模型看起来很奇怪,因为你有男性和女性,而不是相同的“性别”列。

【讨论】:

我的解决方案是什么? 解决方案是更改模型和表架构,并将“男性”和“女性”两列替换为“性别”一列。枚举将是完美的。【参考方案2】:

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

'gander'=> 'required|in:male,female' 

如果它不是必填字段,则在您的数据库表中将 male 列设为可为空。

您的表格设计中还有一个问题,而不是在名称为性别的列上将男性值设置为男性,将女性值设置为女性,然后将0 设置为male,将1 设置为@987654326 @。

如果您不想使用 boolean,则使用 enum 数据类型作为 gender.enum 是您的最佳选择。

【讨论】:

您的表格设计存在问题,请创建一个名称为性别的枚举列,其值为“男性”和“女性”,而不是为男性和女性单独放置一列 如何将布尔类型设置为男性为 0,女性为 1?【参考方案3】:

电台需要的精选作品与 laravel:

@foreach($status_list as $status_key => $status)

  !! Form::radio('status', $status_key, false, array('id'=>'status_'.$status_key, 'required'=>'required' )); !!

  !! Form::label('status_'.$status_key, $status ) !!

@endforeach

【讨论】:

佐伊,它对我有用。感谢您对我的评论。如果您是对的,请分享正确的解决方案。【参考方案4】:

您只需添加所需的属性即可在客户端进行验证

<!-- Gender Field -->
<div class="form-group col-sm-6">
    !! Form::label('gender', 'Gender: *') !!
    <br>
    <label class="radio-inline">
        !! Form::radio('gender', "Male", null,['required']) !! Male
    </label>

    <label class="radio-inline">
        !! Form::radio('gender', "Female", null) !! Female
    </label>
</div>

【讨论】:

以上是关于如何验证 Laravel 5.4 单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Axure:切换单选按扭,控制界面显示不同内容

Python Tkinter 中的单选按钮值

如何获得单选按钮的价值?

如何在表单之外制作单选按钮?

如何在 jQuery Mobile 中刷新单选按钮的样式和布局?

C#单选按钮测验[重复]