tariqul anik
tariqul anik

Reputation: 324

Check old data is null or not or check by isset() from input laravel Blade

How can I check old data is available or not after validation from controller? i used this but it shows error

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

also used this one

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

full form is

<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>

controller

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

both are getting error. How can I check old value us available or not in blade?

Now I include my form data. here I wants to hidden if old value is not found. please help with this one. check isset old data in blade.

Upvotes: 0

Views: 2596

Answers (1)

Akhtar Munir
Akhtar Munir

Reputation: 1769

You can check it in this way. Remember to return it in this way from controller

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

In your view do this

<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>

Upvotes: 2

Related Questions