Reputation: 19
I just wanna populate select option for EDITING the data saved in database? Can someone help me please? I have just started learning laravel.
The code given here is from create.blade.php file, Need to modify this to be edited
<div class="input-field col s12 m6 l6 xl4 offset-xl2 ">
<i class="material-icons prefix">person_outline</i>
<select name="civil_status">
<option value="" disabled {{ old('civil_status')? '' : 'selected' }}>Select a Civil Status</option>
<option value="Married" @if (old('civil_status') == "Married") {{ 'selected' }} @endif>Married</option>
<option value="Single" @if (old('civil_status') == "Single") {{ 'selected' }} @endif>Single</option>
<option value="Divorced" @if (old('civil_status') == "Divorced") {{ 'selected' }} @endif>Divorced</option>
<option value="Widowed" @if (old('civil_status') == "Widowed") {{ 'selected' }} @endif>Widowed</option>
<option value="Seperated" @if (old('civil_status') == "Seperated") {{ 'selected' }} @endif>Seperated</option>
</select>
<label>Civil Status</label>
</div>
public function edit($id)
{
$departments = Department::orderBy('dept_name','asc')->get();
$cities = City::orderBy('city_name','asc')->get();
$states = State::orderBy('state_name','asc')->get();
$genders = Gender::orderBy('gender_name','asc')->get();
$employee = Employee::find($id);
return view('employee.edit')->with([
'departments' => $departments,
'cities' => $cities,
'states' => $states,
'genders' => $genders,
'employee' => $employee,
'toBeEdited' => $employee
]);
}
Upvotes: 0
Views: 614
Reputation: 2602
You can do something like this in your edit.blade.php
view:
<div class="input-field col s12 m6 l6 xl4 offset-xl2 ">
<i class="material-icons prefix">person_outline</i>
<select name="civil_status">
<option value="" disabled {{ old('civil_status')? '' : 'selected' }}>Select a Civil Status</option>
<option value="Married" {{ old('civil_status') == "married" || $toBeEdited->civil_status == "married" ? 'selected' : '' }}>Married</option>
<option value="Single" {{ old('civil_status') == "Single" || $toBeEdited->civil_status == "Single" ? 'selected' : '' }}>Single</option>
<option value="Divorced" {{ old('civil_status') == "Divorced" || $toBeEdited->civil_status == "Divorced" ? 'selected' : '' }}>Divorced</option>
<option value="Widowed" {{ old('civil_status') == "Windowed" || $toBeEdited->civil_status == "married" ? 'selected' : '' }}>Widowed</option>
<option value="Seperated" {{ old('civil_status') == "Separeted" || $toBeEdited->civil_status == "Separated" ? 'selected' : '' }}>Seperated</option>
</select>
<label>Civil Status</label>
</div>
You just need to pass the model to be edited to your view trough your controller, like this:
function edit($id)
{
return view('edit', [
'toBeEdited' => YourModel::find($id),
]);
}
Or you can use dependency injection in your edit function:
function edit(YourModel $model)
{
return view('edit', [
'toBeEdited' => $model,
]);
}
Now you have access to the model
in your view as $toBeEdited
variable.
Hope it helps.
Upvotes: 1