Hi Developer,Hey Artisan,
If you need to see an example of laravel withsum with condition. It's a simple example of laravel withsum where condition. you will learn laravel withsum condition. you will learn laravel relationship withSum with condition. So, let us see in detail an example.
Here i will give you very simple example of how to use withSum() with laravel relationship eloquent. i will also give you example of withSum() with where condition. here we will create Category and Product and how you can add relationship and get it.
you can easily use withSum() 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'
];
}
withSum() 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")
->withSum('products', 'price')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_sum_price] => 30
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_sum_price] => 20
)
)
withSum() 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")
->withSum([
'products' => function ($query) {
$query->where('is_active', '1');
}], 'price')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_sum_price] => 20
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_sum_price] => 20
)
)
I hope it can help you...
Do you like below Tutorials ?
- Angular Use CKEditor Example Tutorial
- How to Use Multiple Select Dropdown in Laravel?
- Angular 9 Image Upload with Crop Example
- Files Upload on Button Click in PHP Dropzone Example
- PHP Dropzone Allow only One File to Upload Example
- PHP Dropzone Allow only Images to Upload Example
- PHP Dropzone Delete Uploaded File Example
- Livewire CRUD Laravel 7 Example