Как получить подробную информацию о таблицах второго уровня в отношениях Laravel - PullRequest
1 голос
/ 10 апреля 2019

У меня есть 3 таблицы

bank(id, title), 

employee(id, name, bank_id), 

payroll(id, employee_id, salary).

Теперь я хочу получить банк title из employee_id в таблице payroll.

Я установил отношения модели

class Bank extends Model
{
    public function employees()
    {
       return $this->hasMany('App\Employee');
    }
}


class Employee extends Model
{
    public function bank()
    {
        return $this->belongsTo('App\Bank');
    }

    public function payrolls()
    {
       return $this->hasMany('App\Payroll');
    }
}

class Payroll extends Model
{
    public function employee()
    {
        return $this->belongsTo('App\Employee');
    }
 }

Я пытался получить, используя $payroll->employee->bank->title. Но это мне не помогло

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Извините, это была моя ошибка.некоторые идентификаторы сотрудников не ссылаются на банк.Вот почему я получил ошибку.Я решил проблему с помощью метода isset, чтобы проверить, установлено или нет эталонное значение.

Спасибо.

0 голосов
/ 10 апреля 2019

попробуйте немного изменить свой код и попробуйте снова:

 public function bank()
 {
        return $this->hasOne('App\Bank');
  }

Чтение официальной документации Laravel / ** Мы можем определить обратное отношение hasOne, используя метод ownTo: ** /

...