如何在 Laravel Eager Loading Array 中使用别名而不更改方法名称

Posted

技术标签:

【中文标题】如何在 Laravel Eager Loading Array 中使用别名而不更改方法名称【英文标题】:How to alias in Laravel Eager Loading Array without changing method name 【发布时间】:2021-11-22 02:10:43 【问题描述】:

我在执行 Laravel 预加载时需要别名:

$employee = Employee::with(['profilepic', 'emp_company'])->find($user->employee_id);

在我的模型中,我有 profilepic 函数和 emp_company 函数。我需要传递一个公司对象而不将 emp_company 函数重命名为 company。

我需要这样做,因为我希望 JSON 响应作为 profilepic 和 company。对于前端,我需要 emp_company 对象作为公司。可以别名。

【问题讨论】:

【参考方案1】:

在数组中将您的 JSON 命名为 "company"

试试这个:

$employee = Employee::with(['profilepic' => 'profilepic', 'company' => 'emp_company'])->find($user->employee_id);

【讨论】:

这个不行,得到 500 服务器错误 还给“profilepic”一个上面更新的索引。

以上是关于如何在 Laravel Eager Loading Array 中使用别名而不更改方法名称的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - Eager Loading BelongsToMany 关系

Laravel Eager Loading - 仅加载特定列

Laravel Eager Loading 在单个注入模型上

Laravel Eager Loading 删除子项的空值

Laravel:Eloquent Eager Loading 关系的选择

Laravel Eager Loading 和动态绑定模型关系