用laravel eloquent检索所有记录

时间:2016-10-10 21:29:44

标签: php laravel eloquent

我尝试按照文档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但是我在控制器代码上遇到以下错误:

  

尝试获取非对象的属性

2 个答案:

答案 0 :(得分:1)

尝试使用,获取所有记录。

答案 1 :(得分:1)

为什么不简单地这样做:

$User = User::find($id);
$tweets = Tweet::whereUserId($id)->get(); // or ->paginate(20);
return compact('User', 'tweets');

P.S。我知道热切加载,但它执行相同的操作+它还会执行额外但不必要的操作来将tweets集合加入User对象。