Php 在拉雷维尔7号有没有办法接近远方的亲戚?
我有四个表格,不知怎的,在我的工资表中,我想选择一名员工并填写他/她的工资明细。唯一的问题是,我无法获取员工职位的详细信息,因为它没有直接连接到Payrolls表 员工模式Php 在拉雷维尔7号有没有办法接近远方的亲戚?,php,database,laravel,eloquent,relationship,Php,Database,Laravel,Eloquent,Relationship,我有四个表格,不知怎的,在我的工资表中,我想选择一名员工并填写他/她的工资明细。唯一的问题是,我无法获取员工职位的详细信息,因为它没有直接连接到Payrolls表 员工模式 class Employees extends Model { protected $fillable = [ 'fname', 'lname', 'gender', 'address', 'positions_id' ]; public function positions()
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);
}
}
职位模型
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);
}
}
工资单模型
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);
}
}
有没有办法把工资单和职位联系起来?我想从职位表中获取基本工资,并将其显示在工资表上(可能通过中间表)。我算出了。 我使用query builder连接控制器上的三个表(员工、工资单、职位):
public function show(Employees $employee, Payrolls $payroll)
{
$basic_pay = DB::table('payrolls')
->join('employees', 'employees.id', '=', 'payrolls.employees_id')
->join('positions', 'positions.id', '=', 'employees.positions_id')
->select('positions.basic_pay')
->where('payrolls.employees_id', '=', $payroll->employees_id)
->get();
$position_name = DB::table('payrolls')
->join('employees', 'employees.id', '=', 'payrolls.employees_id')
->join('positions', 'positions.id', '=', 'employees.positions_id')
->select('positions.name')
->where('payrolls.employees_id', '=', $payroll->employees_id)
->get();
return view('payrolls.show')
->with('payrolls', $payroll)
->with('basic_pay', $basic_pay)
->with('position_name', $position_name)
->with('employees', $employee);
}
关于我的看法:
<label><h4>Position: </h4></label>
<span style="font-size: 25px">
{{ $position_name->pluck('name')->first() }}
</span><br>
<label><h4>Basic Pay: </h4></label>
<span style="font-size: 25px">
{{ $basic_pay->pluck('basic_pay')->first() }}
</span><br>
位置:
{{$position\u name->pull('name')->first()}
基本工资:
{{$basic\u pay->pull('basic\u pay')->first()}
我使用Pulk来提取想要显示的列字段。我找到了它。 我使用query builder连接控制器上的三个表(员工、工资单、职位):
public function show(Employees $employee, Payrolls $payroll)
{
$basic_pay = DB::table('payrolls')
->join('employees', 'employees.id', '=', 'payrolls.employees_id')
->join('positions', 'positions.id', '=', 'employees.positions_id')
->select('positions.basic_pay')
->where('payrolls.employees_id', '=', $payroll->employees_id)
->get();
$position_name = DB::table('payrolls')
->join('employees', 'employees.id', '=', 'payrolls.employees_id')
->join('positions', 'positions.id', '=', 'employees.positions_id')
->select('positions.name')
->where('payrolls.employees_id', '=', $payroll->employees_id)
->get();
return view('payrolls.show')
->with('payrolls', $payroll)
->with('basic_pay', $basic_pay)
->with('position_name', $position_name)
->with('employees', $employee);
}
关于我的看法:
<label><h4>Position: </h4></label>
<span style="font-size: 25px">
{{ $position_name->pluck('name')->first() }}
</span><br>
<label><h4>Basic Pay: </h4></label>
<span style="font-size: 25px">
{{ $basic_pay->pluck('basic_pay')->first() }}
</span><br>
位置:
{{$position\u name->pull('name')->first()}
基本工资:
{{$basic\u pay->pull('basic\u pay')->first()}
我使用Pulk来提取想要显示的列字段。到目前为止,您尝试了什么?员工模型有一个
position\u id
,那么获取引用实体有什么问题呢?@NicoHaase我已经显示了一个工资单,不知怎的,我只能在工资单页面中获取positions\u id
,如下所示:{{$payrolls->employees->pull('positions\u id')->first()}
我想要的是在show.blade Payroll中提取basic_pay
列,这样我就可以进行不可能的计算,我只会得到一个错误。到目前为止,您尝试了什么?员工模型有一个position\u id
,那么获取引用实体有什么问题呢?@NicoHaase我已经显示了一个工资单,不知怎的,我只能在工资单页面中获取positions\u id
,如下所示:{{$payrolls->employees->pull('positions\u id')->first()}
我想要的是在show.blade Payroll中提取basic_pay
列,这样我就可以进行不可能的计算,而且我只得到一个错误。