【问题标题】:Validate select form in laravel在 laravel 中验证选择表单
【发布时间】:2017-12-27 07:14:54
【问题描述】:

我的联系表单上有这个 html:

<div class="form-group">
     <label class="col-md-2 control-label" for="type">Type of website?</label>
     <div class="col-md-10 inputGroupContainer">
          <div class="input-group">
               <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
               <select class="form-control" id="type">
                  <option>Business</option>
                  <option>Company</option>
                  <option>Personal</option>
                  <option>Online Shopping</option>
                  <option>Other</option>
               </select>
          </div>
     </div>
</div>

我如何在电子邮件中验证和传递该字段的数据?

目前我有这个:

<!-- Text input-->
<div class="form-group">
      <label class="col-md-2 control-label">Type</label>
      <div class="col-md-10 inputGroupContainer">
           <div class="input-group">
               <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
               <input  name="type" placeholder="eg. Business, Company, Personal, Online Shopping, etc." class="form-control"  type="text">
           </div>
      </div>
</div>

我这样验证并通过它:

$data = array(
        'type' => $request->type,
      );

但我想要的输入字段是我的第一个示例(选择框),所以我不知道该怎么做!

谢谢。

【问题讨论】:

  • 请描述得更清楚。很难理解你在问什么

标签: php laravel validation


【解决方案1】:

首先将名称命名为Select 下拉字段,然后在验证规则中使用最简单的方法后输入字段名称为select。你给required

示例:

<select class="form-control" id="type" name="Business_Type">
    <option value="">Select Type</option>
    <option value="Business">Business</option>
    <option value="Company">Company</option>
    <option value="Personal">Personal</option>
    <option value="Online Shopping">Online Shopping</option>
    <option value="Other">Other</option>
</select>

验证规则

// Validation rules somewhere...
$rules = [
    ...
    'Business_Type' => 'required',
    ...
];

【讨论】:

    【解决方案2】:

    这将完美运行。

    $rules = [
        'selType' => 'required|in:Business,Company,Personal,Online Shopping,Others'
    ];
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      <div class="form-group">
        <label class="col-md-2 control-label" for="type">Type of website?</label>
        <div class="col-md-10 inputGroupContainer">
          <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
            <select class="form-control" id="type" name="typeSelection">
              <option>--Select type--</option>
              <option>Business</option>
              <option>Company</option>
              <option>Personal</option>
              <option>Online Shopping</option>
              <option>Other</option>
            </select>
          </div>
        </div>
      </div>
      

      规则:

      $rules = [
          'typeSelection' => 'required|not_in:0'
      ];
      

      not_in:0 避免提交的首选女巫是--Select type-- :)

      要将信息传递给验证,只需使用$request-&gt;all(),因为在这种情况下它将使用name字段typeSelection,无需处理新数组!

      【讨论】:

        【解决方案4】:

        Laravel 8 我使用这个,我发现如果你通过检查元素将值更改为其他值 '是的,我知道这听起来很时髦' 仍然可以插入验证器并通过。这是解决方案

        选择:

        <select class="form-control" id="type" name="Business_Type">
        <option value="">Select Type</option>
        <option value="Business">Business</option>
        <option value="Company">Company</option>
        <option value="Personal">Personal</option>
        <option value="Online Shopping">Online Shopping</option>
        <option value="Other">Other</option></select>
        

        验证器:

        $this->validate($request, [
            'selType' => 'required|in:Business,Company,Personal,Online Shopping,Others'
        ]);
        

        只需输入验证器必须通过的值,其他所有值都不会通过

        【讨论】:

          【解决方案5】:

          您需要使用required 验证您的选择,为此您需要设置选择:

          选择进入刀片:

          <select class="form-control" id="type" name="selType">
              <option value="">Select Type</option>
              <option value="Business">Business</option>
              <option value="Company">Company</option>
              <option value="Personal">Personal</option>
              <option value="Online Shopping">Online Shopping</option>
              <option value="Other">Other</option>
          </select>
          

          某处的验证规则:

          $rules = [
              'selType' => 'required'
          ];
          

          【讨论】:

            【解决方案6】:

            如果您想检查所选值是否存在于表格的列中,您可以像此示例一样检查它

            <select class="form-control" id="type" name="Business_Type">
                <option value="">Select Type</option>
                <option value="Business">Business</option>
                <option value="Company">Company</option>
                <option value="Personal">Personal</option>
                <option value="Online Shopping">Online Shopping</option>
                <option value="Other">Other</option>
            </select>
            

            以上选择

            'Business_Type' => 'required|my_business ,type'
            

            这将确保所选值存在于例如 my_business 表的类型列中。 如果您选择第一个选项,它将返回错误

            The selected type is invalid.
            
            
            

            【讨论】:

              【解决方案7】:

              您应该在每个选项中输入价值 第一个应该是

              值=""

              其余的把它们的值像这样放

                 <option value="">Select Type</option>
                  <option value="Business">Business</option>
                  <option value="Company">Company</option>
                  <option value="Personal">Personal</option>
                  <option value="Online Shopping">Online Shopping</option>
                  <option value="Other">Other</option>
              

              【讨论】:

                猜你喜欢
                • 2021-04-25
                • 2017-05-10
                • 1970-01-01
                • 2018-02-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-12-01
                相关资源
                最近更新 更多