Laravel Eloquent withMin(), withMax() and withAvg() Example
Hi All,
This tutorial is focused on laravel eloquent withAvg(). if you want to see example of laravel eloquent withMax() then you are a right place. i explained simply step by step laravel eloquent withMin(). We will look at example of laravel with max eloquent. So, let's follow few step to create example of laravel withmin.
Here i will give you very simple example of how to use withMin(), withMax() and withAvg() with laravel relationship eloquent. we will create Category and Product and how you can add relationship and get it.
you can easily use withMin(), withMax() and withAvg() with laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11 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'
];
}
withMin() 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")
->withMin('products', 'price')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_min_price] => 100
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_min_price] => 200
)
withMax() 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")
->withMax('products', 'price')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_max_price] => 120
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_max_price] => 210
)
)
withAvg() 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")
->withAvg('products', 'price')
->get()
->toArray();
dd($categories);
}
}
Output:
Array
(
[0] => Array
(
[id] => 1
[name] => Mobile
[products_avg_price] => 110.0000
)
[1] => Array
(
[id] => 2
[name] => Laptop
[products_avg_price] => 205.0000
)
)
I hope it can help you...