[英]How to make a field required if it appearing on a form
我有一個 Laravel 5.8 項目,在 Blade 上我添加了這個:
@if(empty($user->usr_name))
<div class="row">
<div class="col-md-12">
<div class="form-group">
<span class='text-danger'>*</span>
<label>Mobile Number</label>
<input type="text" class="form-control" name="mobile" value="{{ !empty($user->member->mbr_mobile) ? $user->member->mbr_mobile : old('mobile') }}" required="required">
</div>
</div>
</div>
@endif
@if(empty($user->usr_email))
<div class="row">
<div class="col-md-12">
<div class="form-group">
<span class='text-danger'>*</span>
<label>Email</label>
<input type="text" class="form-control" name="email" value="{{ !empty($user->usr_email) ? $user->usr_email : old('email') }}" required="required">
</div>
</div>
</div>
@endif
所以如果用戶的usr_name
設置為NULL,那么用戶可以輸入自己的用戶名。
如果用戶的usr_email
是 EMPTY,那么他可以輸入他的 email 地址。
如果這些字段之一不為空,則它不會出現在頁面上。
現在我還需要將這些字段設置為必填字段:
$data = $request->validate([
'email' => 'required|unique:users,usr_email',
'mobile' => 'required|unique:users,usr_name',
]);
但這是錯誤的,因為如果用戶已經有用戶名,則必須省略所需的規則,這同樣適用於用戶 email。
所以問題是,如果一個字段出現在表單上,如何使它成為必填字段? 否則它應該是nullable
。
<div class="row">
<div class="col-md-12">
<div class="form-group">
<span class='text-danger'>*</span>
@if(empty($user->usr_name))
<label>Mobile Number</label>
<input type="text" class="form-control" name="mobile" value="{{
!empty($user->member->mbr_mobile) ? $user->member->mbr_mobile :
old('mobile') }}"
@elseif(empty($user->usr_email))
<label>Email</label>
<input type="text" class="form-control" name="email" value="{{
!empty($user->usr_email) ? $user->usr_email : old('email') }}"
@endif
required="required">
</div>
</div>
</div>
然后
if($request->email){
$data = $request->validate([
'email' => 'required|unique:users,usr_email',
]);
} else {
$data = $request->validate([
'mobile' => 'required|unique:users,usr_name',
]);
}
laravel 5 不再支持使用 8 或更高
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.