Laravel Eloquent 中的急切加载

Posted

技术标签:

【中文标题】Laravel Eloquent 中的急切加载【英文标题】:Eager Loading in Laravel Eloquent 【发布时间】:2021-10-02 22:25:58 【问题描述】:

我是 laravel 的新手。例如,我想问一下我有 report_type 模型和报告模型,这是一对多的关系。我想显示 report_types 以及报告。这个的最佳实践是什么?我应该只使用 report.report_type 还是我还必须在急切加载中添加报告。

$report_histories = Report_history::where('report_id', $report->id)->with(['employee', 'report', 'report.report_type'])->get();

【问题讨论】:

你必须写每一个你想加载的东西,所以如果你想加载report和report_type,你必须像你一样写。 【参考方案1】:
$report_histories = Report_history::with('report.report_type','employee')
                                    ->where('report_id', $report->id)
                                    ->get();

【讨论】:

以上是关于Laravel Eloquent 中的急切加载的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 在急切加载时使用 Eloquent 选择特定列

急切加载 Laravel Eloquent 相关模型

Laravel 混合获取 Eloquent 急切加载嵌套多个模型

关于Eager用Laravel Eloquent Model中的选择过滤器加载

laravel 嵌套急切加载获取和第一个函数

Laravel 动态关系 - 在急切加载时访问模型属性