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:
  • 68 courses (1183 lessons, total 43 h 18 min)
  • 90 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent New Courses