
Use withCount() to get total number of records with relationship
Use withCount() to get total number of records with relationship
In this session, we will try our hand at solving the "Use withCount() to get total number of records with relationship".
-
Get number of records with relationships in Laravel Eloquent using withCount() method
//app\Http\Controllers\<YourController>.php public function index() { $posts = Post::withCount(['comments'])->get(); return view('posts', compact('posts')); } //resources\view\posts.blade.php <table> @foreach ($posts as $post) <tr> <td>Post <b> {{ $post->title }} </b> has <b> {{ $post->comments_count }} </b> comments </td> </tr> @endforeach </table> //app\Models\Post.php public function comments() { return $this->hasMany('App\Models\Comment'); }
You can get the relationship records count without loading data using withCount() method. You have to first define the comments method with hasMany relationship in your post model. If you don’t know how to create hasMany relation you can find it here laravel hasMany method. After that you can call withCount() method on comments method which returns you the number of comments associated with this particular post without actually loading them (data from relationship table).
This code snippet has been tested and it's working in laravel 8. First you have to define a route in web file, create a hasMany relationship method (comments) in post model, create a method in controller file and return data to view and after that dispaly data in view file.
Post Quibusdam ipsam est nihil explicabo. has 3 comments
Post Inventore cupiditate dolores officiis enim accusantium. has 4 comments
Post Ea delectus et incidunt. has 1 comments
Post Excepturi ducimus quo sapiente nesciunt amet. has 1 comments
Post Asperiores maxime maiores sed. has 1 comments
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
Don't forget to share this article! Help us spread the word by clicking the share button below.
We appreciate your support and are committed to providing you valuable and informative content.
We are thankful for your never ending support.
Random Code Snippet Queries: Laravel
- Insert dummy data in users table Laravel
- Laravel route parameter
- The use statement with non-compound name 'DB' has no effect
- Laravel 7 login error message not showing
- Laravel delete all rows older than 30 days
- Syntax error or access violation: 1072 Key column 'role_id' doesn't exist in table (SQL: alter table `users` add constraint `users_role_id_foreign` foreign key (`role_id`) references `roles` (`id`))
- How to insert ckeditor data into database in Laravel?
- Create a record if not exist in laravel
- Connection could not be established with host smtp.gmail.com :stream_socket_client(): unable to connect to tcp://smtp.gmail.com:587 (Connection refused)"
- How to display pivot table column value in laravel
- Non-static method App\Http\Helper::myFunction() should not be called statically
- Laravel change date format
- Get 30 days older records from table in laravel
- Get products with number of orders in Laravel
- How to remove package from laravel
- How to display user profile after login in laravel
- Laravel get all records with pagination
- How to check find method executed successfully in laravel
- Get only 10 records from table in laravel
- Update existing pivot table data in laravel
- Comment .env file in laravel
- Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0"
- How to return a column with different name in Laravel
- How to get last year records count with month wise in Laravel
- How to get tomorrow and yesterday date in laravel