Eloquent scopes inside of other relationships

Did you know that you can use Eloquent scopes inside of defining other relationships?

app/Models/Lesson.php:

public function scopePublished($query)
{
return $query->where('is_published', true);
}

app/Models/Course.php:

public function lessons(): HasMany
{
return $this->hasMany(Lesson::class);
}
 
public function publishedLessons(): HasMany
{
return $this->lessons()->published();
}

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 59 courses (1057 lessons, total 42 h 44 min)
  • 79 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent Premium Tutorials