Разница между методами has и whereHas в Laravel Eloquent заключается в том, что has используется для фильтрации моделей на основе отношений, а whereHas позволяет указать дополнительные фильтры для связанной модели. 2
has проверяет, существует ли отношение между двумя моделями. 3 Например, если у модели «Пост» есть отношение к модели «Комментарий», с помощью метода has можно проверить, есть ли у поста прикреплённое к нему отношение. 3
whereHas работает аналогично has, но позволяет указать условия для запроса отношения. 3 Например, если нужно получить посты, в которых хотя бы один комментарий содержит определённые слова, то можно использовать метод whereHas так: Post::whereHas('comments', function (Builder $query) { $query->where('body', 'like', 'hello%'); })->get()
. 3