在lLaravel中禁用表单验证

时间:2016-03-14 06:24:26

标签: php validation laravel

嗨,我对 Laravel 完全陌生。我在预订系统中验证表单时遇到问题。 我需要的是当用户输入电子邮件字段中的输入时,我不希望需要该电子邮件。我尝试在表单中删除required,但没有成功。这是电子邮件字段的代码。我知道他们正在使用 bootstrap

         <div class="col-md-6">
             <div class="form-group">
                 <label>Email</label>
                 <input type="email" class="form-control required" name="email" id="booking_email" placeholder="Email" ng-model="formData.email"/>
             </div>
         </div>

并在弹出窗口中显示

  

糟糕!有一些问题。电子邮件字段是必填字段。

这是表单验证的预订控制器代码

   public function saveBooking(Request $request)
    {
        $this->validate($request, [
            'name' => 'required',
            'email' => 'required|email',
            'phone_no' => 'required',
        ]);

我在这里遗漏了什么?

2 个答案:

答案 0 :(得分:2)

更改验证规则:

$this->validate($request, [
        'name' => 'required',
        'email' => 'sometimes|required|email',
        'phone_no' => 'required',
    ]);

在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。

  

Check This Docs

答案 1 :(得分:1)

从控制器中的验证中删除required

$this->validate($request, [
            'name' => 'required',
            'email' => 'email',
            'phone_no' => 'required',
        ]);

另外,正如@GoperLeoZosa所提到的,您可以添加'email' => 'email|sometimes|required'

仅当数组中存在email字段时,才会验证该字段。