samedi 14 mars 2020

Querying MorphToMany Relation Laravel

The thing I want to get from the database is that get all the posts with the data which will identify whether the post is liked by the auth()->user() or not. Most probably via count.

App\Post

public function likes()
{
    return $this->morphToMany('App\User', 'likeable');
}

App\User

public function likePosts()
{
    return $this->morphedByMany('App\Post', 'likeable')->withTimestamps();
}

Likeables Table

Likeables table has ('user_id', 'likeable_id', 'likeable_type')

I tried using orWhereHas

$posts = Post::with( ['user', 'tags', 'category'])->orwhereHas('likes', function($q) {
                    $q->where('user_id', auth()->id());
                })->latest()->withoutTrashed()->paginate(10);

But with about query I am only getting those posts which the user has liked. I want to get all posts and a check whether the post is liked by the user or not

I came across whereHasMorph but it was only for morphTo and not for morphToMany.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire