Laravel Order By Relation Column Example
Hello Artisan,
Now, let's see example of laravel order by relation column. you can understand a concept of laravel orderby belongsto relationship. step by step explain orderby in relation laravel. you will learn orderby relation table laravel. Let's see bellow example laravel orderby relationship column.
In this post, i will give some example of how to use orderBy with relationoship field in laravel application. you can easily use order by asc and desc with relation table column in laravel.
This example will help you with laravel 5, laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11.
So, Let's see bellow examples that will helps you.
Example 1:
Now we will use with method for order by relation column in laravel.
So, let's see bellow examples.
Laravel Orderby Belongsto Relationship ASC
$posts = Post::with(['author' => function ($q){
$q->orderBy('name');
}])
->get();
Laravel Orderby Belongsto Relationship DESC
$posts = Post::with(['author' => function ($q){
$q->orderBy('name', 'DESC');
}])
->get();
Example 2:
Now we will use collection sortBy() and sortByDesc() method for order by relation column in laravel.
So, let's see bellow examples.
Laravel Orderby Relation Column using Collection ASC
$posts = Post::get()->sortBy(function($query){
return $query->auther->name;
})
->all();
Laravel Orderby Relation Column using Collection DESC
$posts = Post::get()->sortByDesc(function($query){
return $query->auther->name;
})
->all();
Example 3:
Now we will use inner join and use order by relation column in laravel.
So, let's see bellow examples.
Laravel Orderby Relation Column using Join ASC
$posts = Post::select('*')
->join('authors', 'posts.author_id', '=', 'authors.id')
->orderBy('authors.name', 'ASC')
->paginate(10);
Laravel Orderby Relation Column using Join DESC
$posts = Post::select('*')
->join('authors', 'posts.author_id', '=', 'authors.id')
->orderBy('authors.name', 'DESC')
->paginate(10);
Example 4: Ordering by has-one/belongs-to relationships
You can also use subquery orderBy() and orderByDesc() functions So, let's see bellow examples.
Laravel Order By Relation Column using Join ASC
$posts = Post::select('*')
->orderBy(Author::select('name')
->whereColumn('authors.id', 'posts.author_id')
)
->paginate(10);
Laravel Orderby Relation Column using Join DESC
$posts = Post::select('*')
->orderByDesc(Author::select('name')
->whereColumn('authors.id', 'posts.author_id')
)
->paginate(10);
Example 5: Ordering by has-many relationships
You can also use subquery orderBy() and orderByDesc() functions So, let's see bellow examples.
Laravel Order By Relation Column using Join ASC
$posts = Post::select('*')
->orderBy(Author::select('name')
->whereColumn('authors.id', 'posts.author_id')
->latest()
->take(1)
)
->paginate(10);
Laravel Orderby Relation Column using Join DESC
$posts = Post::select('*')
->orderByDesc(Author::select('name')
->whereColumn('authors.id', 'posts.author_id')
->latest()
->take(1)
)
->paginate(10);
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel Relationship Eager Loading with Condition Example
- Laravel Relationship Eager Loading with Count Example
- Laravel Relationship Where Condition Example
- Laravel Eloquent Relationships Tutorial From Scratch
- Laravel One to One Eloquent Relationship Tutorial
- Laravel One to Many Eloquent Relationship Tutorial
- Laravel Many to Many Eloquent Relationship Tutorial
- Laravel Has Many Through Eloquent Relationship Tutorial
- Laravel One to Many Polymorphic Relationship Tutorial
- Laravel Many to Many Polymorphic Relationship Tutorial