使用 laravel eloquent 检索所有记录

Moh*_*ira 3 php laravel eloquent

我尝试按照此处的文档进行操作,但没有得到所需的结果,我的表​​格看起来像

用户表

id (pk - int) | username,
Run Code Online (Sandbox Code Playgroud)

推文表

id (pk - int) | user_id (fk - int) | tweet(varchar)
Run Code Online (Sandbox Code Playgroud)

用户模型

public function tweets() {
   return $this->hasMany('App\Tweet', 'user_id); // user_id is FK
}
Run Code Online (Sandbox Code Playgroud)

推文模型

public function user() {
    return $this->belongsTo('App\User');
}
Run Code Online (Sandbox Code Playgroud)

在控制器方面,我使用 eloquent 来检索数据。我有这个方法,

public function ajax($id) {
    $data = User::with('tweets')->find($id)->tweets();
    return $data;
}
Run Code Online (Sandbox Code Playgroud)

我尝试遵循此处的逻辑,但在控制器代码上收到以下错误:

试图获取非对象的属性

num*_*8er 5

为什么不简单地这样做:

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

ps 我知道急切加载,但它执行相同的操作+它还执行额外但不必要的操作来将tweets集合连接到User对象。