Hello Developer,Hi Dev,
In this post, we will learn laravel withcount with condition. I explained simply step by step laravel withcount where condition. We will use laravel withcount condition. This tutorial will give you a simple example of laravel relationship withcount with condition.
Here i will give you very simple example of how to use withCount() with laravel relationship eloquent. i will also give you example of withCount() with where condition. here we will create Category and Product and how you can add relationship and get it.
you can easily use withCount() with laravel 6, laravel 7, laravel 8, laravel 9 and laravel 10 version.
Let's see example with output:
Category Model:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
/**
* Get the comments for the blog post.
*/
public function products()
{
return $this->hasMany(Product::class);
}
}
Product Model:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use HasFactory;
protected $fillable = [
'name', 'price', 'is_active'
];
}
withCount() Example:
<?php
namespace App\Http\Controllers;
use App\Models\Category;
class SignaturePadController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function index()
{
$categories = Category::select("id", "name")
->withCount('products')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_count] => 3
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_count] => 2
)
)
withCount() with Where Condition Example:
<?php
namespace App\Http\Controllers;
use App\Models\Category;
class SignaturePadController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function index()
{
$categories = Category::select("id", "name")
->withCount([
'products as active_products_count' => function ($query) {
$query->where('is_active', '1');
},
])
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[active_products_count] => 2
)
[1] => Array
(
[id] => 2
[name] => Laptop
[active_products_count] => 2
)
)
I hope it can help you...
Do you like below Tutorials ?
- Multidimensional Array Search By Value in PHP
- Laravel Install Font Awesome Icons Example
- How to Use Moment JS in Laravel?
- Angular 9 Get Environment Variables Example
- Angular Delete a Component From Cli Example
- How to Upload File from Local to Server using SSH?
- Angular Use CKEditor Example Tutorial
- How to Use Multiple Select Dropdown in Laravel?