Warm tip: This article is reproduced from stackoverflow.com, please click
laravel

How do create Hierarchical dropdownlist for Edit View Blade

发布于 2020-03-28 23:15:21

I am Developing a Web Application with Laravel-5.8.

I have done the create.blade as shown below:

public function create()
{
    $supervisors = Employee::all();
    return view('employees.create')->with('supervisors', $supervisor);
}

<select class="form-control select2bs4" data-placeholder="Choose Supervisor" tabindex="1" name="supervisor_id" style="width: 100%;">>
    <option value="">Select Supervisor</option>
     @if($supervisors->count() > 0)
        @foreach($supervisors as $supervisor)
           <option value="{{$supervisor->id}}">{{$supervisor->employee_code}}</option>
        @endforeach
     @endif
</select>

I have this Laravel model:

class Employee extends Model
{
    protected $table = 'employees';
    protected $fillable = [
              'employee_code',
              'supervisor_id',
              'first_name',
              'emp_image',
              'last_name',
          ];

    public function supervisor()
    {
        return $this->belongsTo('App\Models\Employee','supervisor_id');
    }
}

edit.blade

<div class="col-12 col-sm-4">
   <div class="form-group">
     <label class="control-label"> Supervisor:</label>
      <select class="form-control select2bs4" data-placeholder="Choose Employee Type" tabindex="1" name="supervisor_id" style="width: 100%;">
       <option value="">Select Supervisor</option>
         @if($supervisors->count() > 0 )
          @foreach($supervisors as $supervisor)
            <option value="{{$supervisor->id}}" @if($supervisor->id == $employee->id) selected @endif>{{$supervisor->employee_code}}</option>
          @endforeach
         @endif
     </select>
   </div>
 </div>

The dropdown value this gives me is the same as the loaded employee.

How do I write the edit view blade for the supervisor dropdownlist as I have done for create view blade?

Thank you.

Questioner
mikefolu
Viewed
49
zahid hasan emon 2020-01-31 18:06

your edit function in controller

public function edit($id)
{
    $employee = Employee::findOrFail($id);
    $supervisors = Employee::all();
    return view('employees.edit')->with('supervisors', $supervisor);
}

and the code for edit page

<select class="form-control select2bs4" data-placeholder="Choose Supervisor" tabindex="1" name="supervisor_id" style="width: 100%;">>
    <option value="">Select Supervisor</option>
     @if($supervisors->count() > 0)
        @foreach($supervisors as $supervisor)
           <option value="{{$supervisor->id}}" @if( $employee->supervisor_id == $supervisor->id )
                    selected
                @endif>{{$supervisor->employee_code}}</option>
        @endforeach
     @endif
</select>