dimanche 24 janvier 2021

Get all records from another table with pivot

I have three tables:

comments

id

comment_links

id | comment_id | link_id

links

id

I want to get all Links associated with each Comment. As you can see, CommentLink should act as a pivot table, but I don't know how to set up the relationships to make this work. I think I need to use the hasManyThrough relationship, but I'm not 100% sure.

Here are my current class relationships (they may be wrong):

Comment.php:

class Comment extends Model
{
    public function commentLinks()
    {
        return $this->hasMany('App\CommentLink', 'comment_id', 'id');
    }

    public function links()
    {
        // How do I fetch all links here using the pivot table?
    }
}

CommentLink.php:

class CommentLink extends Model
{
    public function comment()
    {
        return $this->belongsTo('App\Comment');
    }
    
    public function link()
    {
        return $this->hasOne('App\Link', 'id', 'link_id');
    }
}

Link.php:

class Link extends Model
{
    public function commentLinks()
    {
        return $this->belongsToMany('App\CommentLink', 'link_id', 'id');
    }
}

What do I need to do here to make this work?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire