Laravel中如何在Blade视图正确获取并显示外键对应值?
解决方案:在员工详情表格显示公司名称
1. 定义模型关联
打开app/Models/Employee.php,添加与Company模型的关联关系:
public function company() { return $this->belongsTo(Company::class); }
这个关联表示一个员工属于一个公司,Laravel会自动匹配employees表的company_id外键与companies表的id主键。
2. 预加载关联数据优化查询
修改EmployeeController的index方法,使用with('company')预加载公司数据,避免多轮查询的性能问题:
public function index() { $employees = Employee::with('company')->get(); return view('employees.index', compact('employees')); }
3. 修改Blade视图显示公司名称
找到表格中显示company_id的代码行,替换为调用关联模型的名称字段:
<!-- 原代码 --> <td>{{ $employee->company_id }}</td> <!-- 修改后代码 --> <td>{{ $employee->company->name ?? '无关联公司' }}</td>
用?? '无关联公司'是为了兼容员工未关联公司的场景,避免因关联不存在抛出错误。
内容的提问来源于stack exchange,提问作者Arctic Fox
相关产品推荐
相关产品推荐

