【问题标题】:Check old data is null or not or check by isset() from input laravel Blade检查旧数据是否为空或通过输入 laravel Blade 中的 isset() 检查
【发布时间】:2020-08-30 03:19:35
【问题描述】:

如何在控制器验证后检查旧数据是否可用? 我用了这个,但它显示错误

@if(\Illuminate\Http\Request::old('status')!=null)
    <option style="display: none" value="{{old('status')}}" hidden>{{old('status')}}</option>
@endif

这个也用过

@if(isset(old('status')))
    <option style="display: none" value="{{old('status')}}" hidden>{{old('status')}}</option>
@endif

完整形式是

<form action="{{route('add-expense-store')}}" method="post" class="new-added-form">
    {{ @csrf_field() }}
    <div class="row">
        <div class="col-xl-8 col-lg-8 col-12 form-group">
            <label>Expense Type</label>
            <select class="select2" name="type">
                <option value="">Please Select</option>
                {{--<option value="Teacher's Salary">Teacher's Salary</option>
                <option value="Staff's Salary">Staff's Salary</option>--}}
                <option value="Transport">Transport</option>
                <option value="Mobile Bill">Mobile Bill</option>
                <option value="Utility Bill">Utility Bill</option>
                <option value="Stationary">Stationary</option>
                <option value="Print & Press">Print & Press</option>
                <option value="Photocopy & Compose">Photocopy & Compose</option>
                <option value="Entertainment & Hospitality">Entertainment & Hospitality</option>
                <option value="Donation">Donation</option>
                <option value="Program">Program</option>
                <option value="Personal or Owner">Personal or Owner</option>
            </select>
        </div>
        <div class="col-xl-4 col-lg-4 col-12 form-group">
            <label>Status</label>
            <select class="select2" name="status">
                @if(isset(old('status')))
                    <option style="display: none" value="{{old('status')}}" hidden>{{old('status')}}</option>
                @endif
                <option value="">Please Select</option>
                <option value="Paid">Paid</option>
                <option value="Due">Due</option>
            </select>
        </div>
        <div class="col-xl-6 col-lg-6 col-12 form-group">
            <label>Holder Name</label>
            <input type="text" placeholder="" class="form-control" name="holder_name"
                   value="{{ old('holder_name') }}">
        </div>
        <div class="col-xl-6 col-lg-6 col-12 form-group">
            <label>Phone</label>
            <input type="number" placeholder="" class="form-control" name="phone" {{ old('phone') }}>
        </div>
        <div class="col-12 form-group mg-t-8">
            <button type="submit" class="btn-fill-lg btn-gradient-yellow btn-hover-bluedark float-right">Save
            </button>
        </div>
    </div>
</form>

控制器

$this->validate($request, [
      'type' => 'required',
      'status' => 'required'
]);

两者都出现错误。如何在刀片中检查我们可用或不可用的旧值?

现在我包含我的表单数据。如果找不到旧值,我想在这里隐藏。请帮忙解决这个问题。检查刀片中的 isset 旧数据。

【问题讨论】:

  • 请在此视图上添加调用渲染的控制器操作
  • 验证后我将旧值放入刀片中
  • 你怎么说?这就是为什么我要求你展示控制器方法
  • 我编辑了我的问题,请检查
  • 这还不够!我问你整个控制器方法,最后调用视图渲染。如果您只是调用return view('something') 是不够的。所以请添加完整的控制器动作主体。

标签: php laravel


【解决方案1】:

您可以通过这种方式进行检查。记得从控制器中这样返回

 $validator = $this->validate($request, [
                'type' => 'required',
                'status' => 'required'
              ]);
if ( $validator->fails() ) {
        return back()->withErrors( $validator )->withInput();
    }

在你看来这样做

<select class="select2" name="status">
   <option value="">Please Select</option>
   <option value="Paid" {{ old('status') == 'Paid' ? 'selected' : '' }}>Paid</option>
   <option value="Due" {{ old('status') == 'Due' ? 'selected' : '' }}>Due</option>
</select>

【讨论】:

  • @if($errors->any()) @endif
  • 它有效。但显示:检查后没有工作
  • Lolz 是的,是我,又发生了什么? ?
猜你喜欢
  • 2020-04-19
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 2013-12-23
  • 2020-02-04
相关资源
最近更新 更多