mardi 21 août 2018

Fetch posts that have a tag that the user has as well

In a Laravel app, I'm trying to implement a structure where posts are fetched that have one or more of the tags that the user has access to. I wrote the code below to do that:

$query = new Posts();
if (count(Auth::user()->tags) > 0) {
   $query = $query->whereHas('tags', function ($q) {
        $i = 0;
        foreach (Auth::user()->tags as $tag) {
            if ($i == 0) {
                $q->where('title', '=', $tag->title);
            } else {
                $q->orWhere('title', '=', $tag->title);
            }
            $i++;
        }
    });
}
$posts = $query->where('isTemplate', true)->orderBy($key, $order)->paginate(15);

This works, but feels off. So I'm wondering if there's a better way to do this?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire