如何使用Eloquent Laravel的1query获取包括我的推文在内的推文?

时间:2018-12-10 09:14:32

标签: laravel eloquent

我正在像Twitter一样学习Laravel。

我想获取我关注的Tweets的信息,包括带有1个查询的Tweets。

这是关系的模型。 请检查,我只接受有关关系的信息。

enter image description here

请给我建议。

关注模型     类Follow扩展了模型{

Public function user(){
    return $this->belongsTo(User::class, "followed_user_id", "id");
}}

推文模型

class Tweet extends Model {

Public function user(){
    return $this->belongsTo(User::class, "user_id");
}}

用户模型

class User extends Model{

Public function tweet(){
    return $this->hasMany(Tweet::class);
}
Public function followUsers(){
    return $this->hasMany(Follow::class, "follow_user_id");
}
Public function followedUsers(){
    return $this->hasMany(Follow::class, "followed_user_id");
}}

1 个答案:

答案 0 :(得分:0)

如果您想让所有用户获得他的所有推文,只需使用

User::with('tweets')->get();

如果您想在单个查询中获得单个用户的推文,则可以

User::with(['tweets' => function($query) use ($userId){

     $query->where('user_id', $userId);

}])->first()