php 如何将出现在表单中的字段设置为必填字段

bwntbbo3  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(221)

我有一个Laravel 5.8项目,在刀片上我添加了以下内容:

@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为空,则他可以输入他的电子邮件地址。
如果其中一个字段不为空,则该字段不会显示在页面上。
现在,我还需要将这些字段设置为必填字段:

$data = $request->validate([
            'email' => 'required|unique:users,usr_email',
            'mobile' => 'required|unique:users,usr_name',
        ]);

但这是错误的,因为如果用户已经有了用户名,那么必须省略所需的规则,这同样适用于用户电子邮件。
所以问题是,如果一个字段出现在表单中,如何使它成为必填字段?否则它应该是nullable

4xrmg8kj

4xrmg8kj1#

<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',
       ]);
    }

使用8或更高版本不再支持laravel5

相关问题