Laravel - Как получить LineName Manager FullName в таблице самоссылки - PullRequest
0 голосов
/ 27 марта 2020

В моем проекте Laravel -5.8 у меня есть эта модель:

class HrEmployee extends Model
{
   protected $table = 'hr_employees';

   protected $fillable = [
              'id',
              'employee_code',
              'line_manager_id',
              'employee_designation_id',
              'employee_grade_level_id',
              'first_name',
              'last_name',
              'nationality_id',
              'other_name',
              'is_hod',
              'department_id',
          ];

   public function linemanager()
   {
      return $this->belongsTo('App\Models\Hr\HrEmployee','line_manager_id');
   }

   public function designation()
   {
       return $this->belongsTo('App\Models\Hr\HrDesignation','employee_designation_id');
   }

   public function gradelevel()
   {
       return $this->belongsTo('App\Models\Hr\HrGradeLevel','employee_grade_level_id');
   }

   public function department()
   {
       return $this->belongsTo('App\Models\Hr\HrDepartment','department_id');
   }

   public function fullName()
   {
       return $this->first_name . ' ' . $this->other_name . ' ' . $this->last_name;
   }  
}

У каждого сотрудника есть менеджер линии (line_manager_id). В линейном руководителе много подчиненных, но у сотрудника не может быть более одного линейного руководителя. Линейный менеджер также является сотрудником

Контроллер

public function index()
{
    $employees      =       HrEmployee::all();
    return view('dashboard')
            ->with('employees', $employees);   
}

view

         @foreach($employees as $key => $employee)
        <!-- Profile Image -->
        <div class="card card-secondary card-outline">
          <div class="card-body box-profile">

            <h3 class="profile-username text-center">{{auth()->user()->first_name}} {{auth()->user()->last_name}}</h3>

            <p class="text-muted text-center">Designation: {{isset($employee->designation) ? $employee->designation->designation_name : 'N/A'}}</p>

            <ul class="list-group list-group-unbordered mb-3">
              <li class="list-group-item">
                <b>Staff ID:</b> <a class="float-right">{{isset($employee->employee_code) ? $employee->employee_code : 'N/A'}}</a>
              </li>
              <li class="list-group-item">
                <b>Department:</b> <a class="float-right">{{isset($employee->department) ? $employee->department->dept_name : 'N/A'}}</a>
              </li>
              <li class="list-group-item">
                <b>Grade Level:</b> <a class="float-right">{{isset($employee->gradelevel) ? $employee->gradelevel->grade_level_name : 'N/A'}}</a>
              </li>
              <li class="list-group-item">
                <b>Line Manager:</b> <a class="float-right"></a>
              </li>
            </ul>


          </div>
          <!-- /.card-body -->
        </div>
        <!-- /.card -->
        @endforeach 

Таблица сотрудников имеет line_manager_id. Так что нужно принять это за ориентир. Как показано на приведенном выше бланке, как отобразить полное имя (имя, фамилия) линейного менеджера сотрудника?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...