Как получить твиты, включая мои твиты, с помощью 1query от Eloquent Laravel? - PullRequest
0 голосов
/ 10 декабря 2018

Я создаю, как Твиттер, для изучения Laravel.

Я хочу получить информацию о твитах, за которыми я следую, и в том числе мои твиты с 1 запросом.

Это модельотношения.Пожалуйста, проверьте, я беру только информацию об отношениях.

enter image description here

Пожалуйста, дайте мне совет.

Следуйте за классом модели Следуйте расширяет Модель {

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

Модель Tweet

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 голосов
/ 10 декабря 2018

Если вы хотите получить всех пользователей с его всеми твитами, вы можете просто использовать

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

Если вы хотите получить твиты одного пользователя в одном запросе, вы можете

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

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

}])->first()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...