Laravel Eloquent 查询返回非对象
Laravel Eloquent query returning non object
我正在尝试减少执行的 SQL 查询的数量。我有一个 post,我想在其中获取 post 的作者并将其列在页面上。为了减少 SQL 查询的数量,我有以下代码:
$posts = Post:all();
$posts->load('user');
$posts->first()->user;
我得到 error/notice "Trying to get property 'user' of a non-object"。我如何摆脱这个错误?
预加载将此操作减少到仅 2 个查询
public function example()
{
$posts = Posts::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name;
}
}
错误可能是因为您尝试访问的 Post(或第一个 post)与任何用户都不相关。您可以试试这个来避免错误。
$posts = Post:all();
$posts->load('user');
// Try any one of below.
1) $posts->first()->user ?? '';
2) $posts->first()->user or ''; // in Laravel 5.5 or below
我正在尝试减少执行的 SQL 查询的数量。我有一个 post,我想在其中获取 post 的作者并将其列在页面上。为了减少 SQL 查询的数量,我有以下代码:
$posts = Post:all();
$posts->load('user');
$posts->first()->user;
我得到 error/notice "Trying to get property 'user' of a non-object"。我如何摆脱这个错误?
预加载将此操作减少到仅 2 个查询
public function example()
{
$posts = Posts::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name;
}
}
错误可能是因为您尝试访问的 Post(或第一个 post)与任何用户都不相关。您可以试试这个来避免错误。
$posts = Post:all();
$posts->load('user');
// Try any one of below.
1) $posts->first()->user ?? '';
2) $posts->first()->user or ''; // in Laravel 5.5 or below