Ad

Laravel OctoberCms Ajax Filter

i have a Laravel based octobercms project and i'm having a problem. Can you help me?

For example, consider a movie website;

  • I have a page where movies are listed, and this page is filtering with ajax filter. I want it to show every selected genre in the movie type filtering option. So like this:

There are movies in action, drama and comedy genres.

When the action is clicked, the action movies are listed. In addition, when comedy is clicked, movies that have both Action and Comedy genres are listed. However, I want both movies with both genres and genres with the most one to be listed.

if($genres !== null) {

            if(!is_array($genres)){
                $genres = [$genres];
            }

            foreach ($genres as $genre){
                $query->whereHas('genres', function($q) use ($genre){
                    $q->where('id', '=', $genre);
                });
            }   

        } 
Ad

Answer

Try this request:

if($genres !== null) {
    $query->has('genres', '>', 0, 'and', function ($q) use ($genres) {
        $q->whereIn('id', $genres);
    });
});

The $genres variable must contain an array of id ($genres = [1,2,3]). Сheck it.

Ad
source: stackoverflow.com
Ad