我有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.
进行检索,但这对我没有帮助
答案 0 :(得分:0)
对不起,这是我的错误。某些员工ID没有引用银行。这就是为什么我会出错。 我通过使用isset方法验证参考值是否设置来解决此问题。
谢谢。
答案 1 :(得分:-2)
尝试稍微更改代码,然后重试:
public function bank()
{
return $this->hasOne('App\Bank');
}
阅读Laravel官方文档 / **我们可以使用belongsTo方法定义hasOne关系的逆:** /