/** * Query get book that is recently published. * @param [Illuminate\Database\Eloquent\Builder] $query * @return [Illuminate\Support\Collection] */ public function scopeBookWithLanguageAndCategory($query, $languageId, $categoryId) { $query->where('books.is_published', Book::PUBLISH); if ($languageId != "all") { $query->join('languages', function ($join) use($languageId) { $join->on('languages.id', '=', 'books.language_id')->where('languages.id', '=', $languageId); }); } if ($categoryId != "all") { $query->join('book_category', function ($join) use($categoryId) { $join->on('book_category.book_id', '=', 'books.id')->where('book_category.category_id', '=', $categoryId); }); } return $query; }