Laravel with() 仅适用于第一条记录(仅适用于 ID 为 1 的记录)

O.谢克里拉泽

想象一下在 laravel User Eloquent 模型中我有这种关系函数的情况:

public function serviceProvider(){
    return $this->belongsTo('App\Http\Models\Users\ServiceProvider');
}

public function company(){
    return $this->serviceProvider->company();
}

我在 serviceProvider 模型中有这种关系:

public function company()
{
    return $this->morphOne('App\Http\Models\Companies\Company', 'companyable');
}

现在在控制器中我写了这样的东西:

User::where('status', '=', 1)->with('company')->get();

我知道这听起来很疯狂,但它只适用于用户的id = 1,记录,它只返回记录的其余部分company : null

我不知道这里发生了什么,也许我做错了什么?问题是什么?

如果我写这样的东西:$user->company,它有效,它适用于每个用户,我的意思是

$user = User::where('id', '=', "any id")->first;

所以问题是 with()

右转

我有点惊讶这完全是公平的。

由于您建立User了关系serviceProvider并且与建立了关系,因此company您不需要companyUser.

如果您想急切/延迟加载嵌套关系,您可以使用点符号,例如

User::with('serviceProvider.company')->where('status', 1)->get();

延迟加载文档(向下滚动到Nested Eager Loading

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Golang记录ID为0

Foreach仅返回第一条记录,停止

如何使订单仅适用于非空记录却获得所有记录?

Rails查询:按ID查找第一条记录,并仅选择该记录的指定属性

Laravel csrf_field()-仅适用于方法为“ POST”的表单?

Python记录-仅适用于自己导入的模块

SQL SUM仅返回第一条记录

sql查询仅适用于1条记录

Laravel DB insert([])只插入数组的第一条记录

Laravel Validator仅适用于失败

我正在遍历数据库,但我的div模型仅适用于第一条记录,不适用于其他记录

为每个ID选择每月的最后一条记录

为所有用户创建启动程序12.04-仅适用于1个用户

上一个/下一个链接不适用于模型中的第一条记录和最后一条记录(导轨)

为ListView中的每个第一条记录显示附加的类值

SQL:执行计算并确保每个id的第一条记录为空值

关于点击ID的jQuery仅适用于第一个输出

获取MongoDB中第一条记录的ID

Laravel 5 Pivot表仅保存第一条记录

为每个单元提取历史记录文件的第一条记录

测试记录器和Xamarin表单-ID不适用于UITest

PHP While ID循环仅适用于第一个ID

使用 tm 函数时保留唯一标识符(例如,记录 ID) - 不适用于大量数据?

在laravel 5.5中仅显示数据库中的第一条记录和单条记录

删除laravel eloquent中的第一条记录

访问 VBA 嵌套 for 循环仅适用于第一条记录

Laravel foreach 好像停在第一条记录

从 laravel 存储库获取第一条记录

Laravel 8 GroupBy 仅返回每个组的第一条记录,但我需要按方式分组的所有记录