【问题标题】:Validating multiple select box inside loop using laravel validation method使用laravel验证方法验证循环内的多个选择框
【发布时间】:2018-09-15 03:35:25
【问题描述】:

我在表单的循环中有多个同名的选择框。我添加了 laravel 验证来检查选择框是否被选中。但是所有选择框都显示验证错误消息。请检查附上的图片。任何帮助,将不胜感激。

cart.blade.php

@forelse($carts as $key => $cart)
<div class="col-sm-4 col-sm-4-booking1 form-group {{ $errors->has('guest.*.sleeps') ? ' has-error' : '' }}">
    <label>Sleep(s)</label>

    <select class="form-control form-control-booking1 jsBookCalSleep"  name="guest[{{ $cart->_id }}][sleeps]">
    <option value="">Choose Sleep(s)</option>
    @for($i = 1; $i <= 30; $i++)
       <option value="{{ $i }}" @if($i == $cart->sleeps) selected @endif>{{ $i }}</option>
    @endfor
    </select>

    @if ($errors->has('guest.*.sleeps'))
         <span class="help-block"><strong>{{ $errors->first('guest.*.sleeps') }}</strong></span>
    @endif
</div> 
@empty
  <p>No bookings in your cart</p>
@endforelse

CartController.php

public function store(CartRequest $request)
{
    dd($request->all());
}

CartRequest.php

public function rules()
    {
        return [
            'guest.*.sleeps' => 'required|not_in:0'
        ];
    }

【问题讨论】:

    标签: php laravel laravel-5.5


    【解决方案1】:

    试试这些

    @php
     $inputName='guest.'.$cart->_id.'.sleeps';
    @endphp
    @if ($errors->has($inputName))
         <span class="help-block"><strong>{{ $errors->first($inputName) }}</strong></span>
    @endif
    

    我没有测试过, 如果不工作请告诉我

    【讨论】:

    • 谢谢。这是工作。但是 $inputName='guest.'.$cart->_id.'.sleeps' 的小变化(删除了花括号);
    • 很高兴听到它有帮助
    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2016-10-30
    • 2017-05-10
    • 2016-08-23
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多