Как просмотреть профиль сотрудника с помощью Laravel и JWT в API - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть таблица User с колонкой

  $table->increments('id');
  $table->string('emp_id');
  $table->string('email')->unique();
  $table->string('password');

И столик Сотрудник

$table->increments('id');
$table->string('employee_id')->unique();
$table->string('employee_name');
$table->string('department');
$table->string('designation');
$table->string('supervisor');
$table->string('hr_master');
$table->timestamps();

Когда я в первый раз вошел в систему с помощью JWT, у меня emp_id от User - это внешний ключ к таблице Employee. Я хочу просмотреть профиль сотрудника, используя emp_id в таблице User, чтобы получить информацию об этом сотруднике в таблице Employee. Это функция, которую я пишу

public function getEmployeeDetail(){
        return $this->user->employee()
        ->first()->toArray();
    }

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы можете добавить аксессор к App/User модели.

public function getEmployeeAttribute()
{
    return \App\Employee::find($this->emp_id);
}

После этого вы можете получить доступ к связанным App\Employee данным, например:

$user->employee->employee_name

И вы можете использовать необязательную вспомогательную функцию , чтобы предотвратить возникновение ошибки, если пользователь не связан с каким-либо сотрудником:

optional($user->employee)->employee_name
0 голосов
/ 06 ноября 2018

сначала создайте отношение в вашей пользовательской модели

public function employee()
{

return $this->hasOne(Employee::class,'emp_id','id');

}

теперь для вызова

$user=auth()->user();
$user->employee //out put = curent Employee detail
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...