laravel - Laravel Eloquent 查询返回非对象
问题描述
我正在尝试减少执行的 SQL 查询的数量。我有一个帖子,我想在其中获取该帖子的作者并将其列出在页面上。为了减少 SQL 查询的数量,我有以下代码:
$posts = Post:all();
$posts->load('user');
$posts->first()->user;
我收到错误/通知“尝试获取非对象的属性‘用户’”。我该如何摆脱这个错误?
解决方案
急切加载将此操作减少到只有 2 个查询
public function example()
{
$posts = Posts::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name;
}
}
推荐阅读
- java - Java:使用 indexOf 方法基于另一个数组对数组进行排序
- java - REST API - 无法使用 JAXB 转换 XML
- csv - Bash 合并文件
- jenkins - Jenkins 共享库返回可执行的 docker 命令
- vue.js - 无法运行 npm run serve
- angularjs - AngularJs:错误:IE11 中出现安全问题
- java - 什么java设计模式可以避免强制转换数据实体
- c# - XML反序列化愚蠢的问题
- magento - 在 magento 1 和 magento 2 的系统配置设置中调用 Phtml 文件
- php - 如何在 Laravel 和 MySQL 中不使用日期的情况下将时间戳标志设置为 true?