簡體   English   中英

動態形式的驗證Laravel 5.5

[英]Validation in dynamic form Laravel 5.5

如何為動態表單創建驗證?

//Controller
public function store(Request $request)
{       
    $rules = [
        'companyName' => 'required',
        'bannerName' => 'required',
        'bannerDescription' => 'required',
        'bannerURL' => 'required',
        'bannerImg' => 'required',
    ];

    $customMessages = [
        'companyName.required' => 'Yo, what should I call you?',
        'bannerName.required' => 'Yo, what should I call you?',
        'bannerDescription.required' => 'Yo, what should I call you?',
        'bannerURL.required' => 'Yo, what should I call you?',
        'bannerImg.required' => 'Yo, what should I call you?',
    ];

    $this->validate($request, $rules, $customMessages);
}

這是我的觀點,我的“名稱” attr是數組,因為我會將大量數據存儲到DB。 單擊“ +添加橫幅” jquery將使用相同的4個輸入克隆div。 如果我刪除數組,一切都會正常工作,但是如果沒有,我將得到以下錯誤

htmlspecialchars()期望參數1為字符串,給定數組

{!! Form::open(['action' => 'CompanyController@store', 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}
                        <div class="form-group{{ $errors->has('companyName') ? ' has-error' : '' }}">
                            <label for="companyName">Company URL Address</label>    
                                <input type="text" class="form-control" value="{{old('companyName')}}" id="companyName" name="companyName" placeholder="example.com">
                                <small class="text-danger">{{ $errors->first('companyName') }}</small>        
                        </div>

                        <hr>

                         <div data-sel-baner-box>                         
                            <div data-sel-baner-form>
                                    <div class="panel-heading"><h4 style="text-align: center">New banner</h4></div>

                                    <div class="form-group{{ $errors->has('bannerName') ? ' has-error' : '' }}">
                                        <label for="bannerName">Title</label>     
                                        <input type="text" class="form-control" id="bannerName" value="{{old('bannerName')}}" name="bannerName[]" placeholder="Name">
                                        <small class="text-danger">{{ $errors->first('bannerName') }}</small>
                                    </div>

                                    <div class="form-group{{ $errors->has('bannerDescription') ? ' has-error' : '' }}">
                                        <label for="bannerDescription">Banner Description</label>
                                        <input type="text" class="form-control" id="bannerDescription" value="{{old('bannerDescription')}}" name="bannerDescription[]" placeholder="Description">
                                        <small class="text-danger">{{ $errors->first('bannerDescription') }}</small>
                                    </div>

                                    <div class="form-group{{ $errors->has('bannerURL') ? ' has-error' : '' }}">
                                        <label for="bannerURL">Banner URL</label>
                                        <input type="text" class="form-control" id="bannerURL" value="{{old('bannerURL')}}" name="bannerURL[]" placeholder="URL">
                                        <small class="text-danger">{{ $errors->first('bannerURL') }}</small>
                                    </div>

                                    <div class="form-group{{ $errors->has('bannerImg') ? ' has-error' : '' }}">
                                        <label for="bannerImg">File input</label>
                                        <input type="file" class="form-control-file" id="bannerImg" name="bannerImg[]">
                                        <small class="text-danger">{{ $errors->first('bannerImg') }}</small>
                                   </div>
                               </div>

                       <a href="##" data-sel-btn-add-baner class="btn btn-primary">+ Add Banner</a>
                       <button type="submit" class="btn btn-primary">Save Company</button> 

                    {!! Form::close() !!}       

有什么提示嗎?

您必須對數組輸入驗證規則使用點表示法,如下所示:

$rules = [
    'companyName.*' => 'required',
    'bannerName.*' => 'required',
    'bannerDescription.*' => 'required',
    'bannerURL.*' => 'required',
    'bannerImg.*' => 'required',
];

您可以在此處查看文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM