Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
November 21, 2021 09:41 am GMT

WhereHas() In Laravel

Let's get started quickly
You may want to base your results on the existence of a relationship. For example, imagine that you want to retrieve all projects that have project_one starting with ,CSS. To do this, you can pass the name of the relationship to the whereHas() method and specify additional query constraints for has queries

Project::whereHas('project_one', function (Builder $query) {    $query->where('title', 'like', 'CSS%');})->get();

use with() method with WhereHas()

Project::with('project_one')->whereHas('project_one', function (Builder $query) {       $query->where('title', 'like', 'CSS%');})->get();

Now, Let's be more professional

public function scopeWithWhereHas($query, $relation, $constraint){   return $query->whereHas($relation, $constraint)->with([$relation => $constraint]);}

Then

Project::withWhereHas('project_one', fn($query) =>     $query->where('title', 'like', 'CSS%'))->get();

Since this query builder may be needed in many Models in AppServiceProvider::boot()

use Illuminate\Database\Eloquent\Builder;Builder::macro('withWhereHas', fn($relation, $constraint) =>   $this->whereHas($relation, $constraint)->with([$relation => $constraint]););

I hope you enjoy the code.


Original Link: https://dev.to/marcosgad/wherehas-in-laravel-1laa

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To