Laravel从模型中获取具有某些数据和关系的记录

时间:2019-04-20 14:34:51

标签: php laravel

我有模型Post:

grades = {'Joe':'A','John':'B'}
print(" ".join('{}: {}'.format(k,v) for k,v in grades.items()))
#Joe: A John: B

在控制器上时,我仅设置标题和图像:

protected $with = ['user']

public function user() {
    return $this->belongsTo(User::class);
}

关系用户返回我为null。

$posts = Post::get(['title', 'image']);

为什么?如果我从@foreach($posts as $post) User: {{ $post->user->name }} //null @endforeach 方法中删除数组,则关系正在工作;如果我设置了数组,则关系用户将我返回null。请帮忙。

1 个答案:

答案 0 :(得分:0)

使用Post::get(['title', 'image']);,您指定只需要这些列。

如果您想使用这种方法,

$posts = Post::with('user')->get(['title', 'image']);

或者您可以不使用protected $with属性来包含用户,而是使用protected $appends来将用户始终添加为默认字段

// In Post Class:
protected $appends = "user";

// Then this should work
$posts = Post::get(['title', 'image', 'user']);