Laravel hasManyThrough 2表

i have two tables as below: users table:

|id|name|email|password|created_at|updated_at

messages table:

|id|sender_id|receiver_id|message|created_at|updated_at

User model:

public function threads()
{
    return $this->hasManyThrough(Message::class, User::class,'id','sender_id');
}

i'm trying retrieve message threads which isn't working. any help appreciated.

This is an example from laravel eloquent relationship

class Country extends Model
{
    public function posts()
    {
        return $this->hasManyThrough(
            'App\Post',
            'App\User',
            'country_id', // Foreign key on users table...
            'user_id', // Foreign key on posts table...
            'id', // Local key on countries table...
            'id' // Local key on users table...
        );
    }
}

can you review your code

It seems that you want to retrieve all messages that belongs to a single thread (list of users) using hasMany relationship Through User model, to do that You have to define hasManyThrough inside Thread model not in User model, here is an example:

User:

|id|name|email|password|created_at|updated_at|thread_id

Note thread_id foreign key because thread is a list of users

Thread:

class Thread extends Model {

    public function messages() {

        return $this->hasManyThrough(Message::class, User::class,'thread_id','sender_id', 'id', 'id');

    }

}

Example from laravel doc