【问题标题】:How to validate Laravel 5.4 radio button?如何验证 Laravel 5.4 单选按钮?
【发布时间】: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 数据类型创建我的模式字段。现在它的作品。
  • 太棒了!!!祝你好运

标签: php forms laravel validation radio-button


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2012-10-10
    • 1970-01-01
    • 2021-12-01
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多