Can I create a more efficient blade directive? Hi,
I'm querying the database and returning a Job Type. The result is being returned in a drop down, along with other options. I want the other options in the drop down to be conditional based on the Job Type returned. Basically - I don't want to repeat all of the options AND show the Job Type result - because I'll have a duplicate value in the drop down.
The below process works, but it seems like a clunky solution. Wondering how a more experienced dev would accomplish this.
@if($listings->jobtypes->first()->name == 'Full-Time')
<option value="{{$listings->jobtypes->first()->name}}" selected>{{$listings->jobtypes->first()->name}}</option>
<option value="Part-Time">Part-Time</option>
<option value="Contractor">Contractor</option>
<option value="Temporary">Temporary</option>
<option value="Per Diem">Per Diem</option>
@endif
@if($listings->jobtypes->first()->name == 'Part-Time')
<option value="{{$listings->jobtypes->first()->name}}" selected>{{$listings->jobtypes->first()->name}}</option>
<option value="Part-Time">Full-Time</option>
<option value="Contractor">Contractor</option>
<option value="Temporary">Temporary</option>
<option value="Per Diem">Per Diem</option>
@endif
@if($listings->jobtypes->first()->name == 'Contractor')
<option value="{{$listings->jobtypes->first()->name}}" selected>{{$listings->jobtypes->first()->name}}</option>
<option value="Part-Time">Full-Time</option>
<option value="Contractor">Part-Time</option>
<option value="Temporary">Temporary</option>
<option value="Per Diem">Per Diem</option>
@endif
@if($listings->jobtypes->first()->name == 'Temporary')
<option value="{{$listings->jobtypes->first()->name}}" selected>{{$listings->jobtypes->first()->name}}</option>
<option value="Part-Time">Full-Time</option>
<option value="Contractor">Part-Time</option>
<option value="Temporary">Contractor</option>
<option value="Per Diem">Per Diem</option>
@endif
@if($listings->jobtypes->first()->name == 'Per-Diem')
<option value="{{$listings->jobtypes->first()->name}}" selected>{{$listings->jobtypes->first()->name}}</option>
<option value="Part-Time">Full-Time</option>
<option value="Contractor">Part-Time</option>
<option value="Temporary">Contractor</option>
<option value="Per Diem">Temporary</option>
@endif
Hi @gerardw85 , this seems like a good use case for foreach
<select id=" " name=" ">
<option value="{{-- code for selected option --}}"></option>
@foreach ($listings->jobtypes as $jobtype)
<option value="{{ $jobtype->name }}">{{ $jobtype->name }}</option>
@endforeach
</select>
there is something very wrong with your code: you should NEVER do a query in a view (in this case blade file)
You do the query in the Controller, and then pass the result to the View, the View only USE the result it has been given
Please sign in or create an account to participate in this conversation.