用户表
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;
}
我尝试按照这里的逻辑进行操作,但是在控制器代码中出现了以下错误:
尝试获取非对象属性
dd(User::with('tweets')->find($id))
。这很可能会返回 null,因此出现了错误。您需要确保$id
在用户表中存在。 - Luís Cruzwith()
可以预加载推文。除非你明确想要获取关系,否则应该使用find($id)->tweets
而不是tweets()
(注意没有括号)。前者获取数据,后者获取关系。 - Ben Swinburne$data = User::with('tweets')->find($id)->tweets;
代替$data = User::with('tweets')->find($id)->tweets();
。 - The Alpha