嗨,我对 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',
]);
我在这里遗漏了什么?
答案 0 :(得分:2)
更改验证规则:
$this->validate($request, [
'name' => 'required',
'email' => 'sometimes|required|email',
'phone_no' => 'required',
]);
在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。
答案 1 :(得分:1)
从控制器中的验证中删除required
:
$this->validate($request, [
'name' => 'required',
'email' => 'email',
'phone_no' => 'required',
]);
另外,正如@GoperLeoZosa所提到的,您可以添加'email' => 'email|sometimes|required'
。
仅当数组中存在email
字段时,才会验证该字段。