【问题标题】:Pass setEagerLoads to Lazy Eager Loading in order to override $with将 setEagerLoads 传递给 Lazy Eager Loading 以覆盖 $with
【发布时间】:2018-02-24 22:36:16
【问题描述】:

在我的项目中,我有 Clients Eloquent 模型,它在类中配置了急切的关系,如下所示:

protected $with = [ 'phones', 'emails' ];

客户端也与任务有关系。等等在任务视图页面上

我这样加载客户端的名称: $task->load('client')

问题在于它也会加载电话和电子邮件。在这种情况下,有没有办法以某种方式使用 setEagerLoads 来覆盖 $with


完整的sn-p


/**
 * Display the specified Task.
 *
 * @param Task $task
 */
public function show(Task $task)
{
    $task->load('client');

    return view('task.show', compact('task'));
}

【问题讨论】:

    标签: laravel laravel-5 eloquent eager-loading


    【解决方案1】:

    你可以通过像$task->setRelations([])这样的空数组来卸载realations

    【讨论】:

    • 我需要从加载在父任务上的客户端中删除关系,而不是从 $task 中删除
    • 提供更多关于你的模型和实现区域的代码,这会很有帮助
    猜你喜欢
    • 2016-05-29
    • 2017-01-20
    • 1970-01-01
    • 2020-11-09
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2017-12-18
    相关资源
    最近更新 更多