【发布时间】:2020-10-14 21:31:05
【问题描述】:
我有四个表,不知何故,在我的工资表中,我想选择一名员工并填写他/她工资单的详细信息。唯一的问题是我无法获取员工职位详细信息,因为它没有直接连接到 Payrolls 表。
员工模型
class Employees extends Model
{
protected $fillable = [
'fname',
'lname',
'gender',
'address',
'positions_id'
];
public function positions()
{
return $this->belongsTo(Positions::class);
}
public function payrolls()
{
return $this->belongsToMany(Payrolls::class);
}
}
职位模型
class Positions extends Model
{
protected $fillable = [
'name',
'basic_pay'
];
public function employees()
{
return $this->hasMany(Employees::class);
}
}
薪资模型
class Payrolls extends Model
{
protected $fillable = [
'days_work',
'overtime_hrs',
'late',
'absences',
'bonuses',
'employees_id'
];
public function employees()
{
return $this->belongsToMany(Employees::class);
}
}
有什么方法可以连接工资单和职位?我想从 Positions 表中获取 basic_pay 并将其显示在 Payrolls 表中(可能通过中间表)。
【问题讨论】:
-
到目前为止您尝试过什么? Employee模型有一个
position_id,那么获取引用的实体有什么问题呢? -
@NicoHaase 我已经完成了显示单个工资单的操作,但不知何故,我只能在工资单刀片中获得
positions_id,如下所示:{{ $payrolls->employees->pluck('positions_id')->first() }}我想要的是在show.blade Payroll 所以我可以进行不可能的计算,我只会得到一个错误。
标签: php database laravel eloquent relationship