如何在Laravel关系中检索二级表的详细信息

时间:2019-04-10 12:59:49

标签: laravel eloquent relationship

我有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 :(得分:0)

对不起,这是我的错误。某些员工ID没有引用银行。这就是为什么我会出错。 我通过使用isset方法验证参考值是否设置来解决此问题。

谢谢。

答案 1 :(得分:-2)

尝试稍微更改代码,然后重试:

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

阅读Laravel官方文档 / **我们可以使用belongsTo方法定义hasOne关系的逆:** /