我尝试按照文档here但没有得到理想的结果, 我的表看起来像
用户表
id (pk - int) | username,
推文表
id (pk - int) | user_id (fk - int) | tweet(varchar)
用户模型
public function tweets() {
return $this->hasMany('App\Tweet', 'user_id); // user_id is FK
}
推特模型
public function user() {
return $this->belongsTo('App\User');
}
在控制器方面,我使用eloquent来检索数据。我有这个方法,
public function ajax($id) {
$data = User::with('tweets')->find($id)->tweets();
return $data;
}
我尝试遵循逻辑here但是我在控制器代码上遇到以下错误:
尝试获取非对象的属性
答案 0 :(得分:1)
尝试使用,
获取所有记录。
答案 1 :(得分:1)
为什么不简单地这样做:
$User = User::find($id);
$tweets = Tweet::whereUserId($id)->get(); // or ->paginate(20);
return compact('User', 'tweets');
P.S。我知道热切加载,但它执行相同的操作+它还会执行额外但不必要的操作来将tweets
集合加入User
对象。