我有一个名为 employees
的表,其中包含以下列:
-id
-名字
-姓氏
-manager_id
manager_id
是属于员工经理的行的 ID。因此,如果 A 是 B 的经理,则 B 行中的 manager_id
将具有 A 的 id
。
在我的 Employee
模型中,我有以下方法:
public function manager(){
return Employee::where('id', $this->manager_id)->first();
}
在我尝试执行以下操作时,我认为:
@foreach($employees as $employee)
<tr>
<td style="width: 12%"><span class="fw-semi-bold">{{ $employee->firstname }}</span></td>
<td style="width: 12%"><span class="fw-semi-bold">{{ $employee->lastname }}</span></td>
<td style="width: 20%"><span class="fw-semi-bold">{{ $employee->manager()->firstname . ' ' . $employee->manager()->lastname }}</span></td></tr>
@endforeach
它给出了以下错误:
尝试获取非对象的属性
我尝试在 View 中使用 manager()->firstname
以及 manager->firstname
但每次错误都是一样的。
最佳答案
在你的 Employee 模型中
public function manager()
{
return $this->belongsTo('App\Manager','manager_id');
}
在 View 中
@foreach($employees as $employee)
<tr>
<td style="width: 12%"><span class="fw-semi-bold">{{ $employee->firstname }}</span></td>
<td style="width: 12%"><span class="fw-semi-bold">{{ $employee->lastname }}</span></td>
<td style="width: 20%"><span class="fw-semi-bold">@if($employee->manager) {{ $employee->firstname }} {{ $employee->lastname }}@endif</span></td>
</tr>
@endforeach
假设您的 Manager.php 模型位于 app 目录中。如果不是,请更新 belongsTo() 函数的第一个参数中的命名空间。
希望这会有所帮助。
关于php - Laravel - 尝试使用 self ref FK 从同一表的行中获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39725262/