
Get products with number of orders in Laravel
Get products with number of orders in Laravel
In this article, we will see how to solve "Get products with number of orders in Laravel".
You can get the products with number of orders in Laravel. Sometimes you have to get the number of orders placed for the products, in that case, this code snippet will help you to find out the solution for you.-
Return products with number of orders using count of nested relationship data
$products = Product::all(); $productsArr = $products->map(function (Product $product){ $productObj = $product->toArray(); $productObj['orders_count'] = $product->orders()->count(); return $productObj; });
This code snippet will help you to get the total number of orders (records of relationship data) with Product. In this code there is a map method which get the count of orders form the relationship while iterating product model data.
You have to create the orders method in Product model.
app\Models\Product.php
public function orders(){ return $this->hasMany('App\Models\Order'); }
-
Return products with number of orders using eager load relationship
$products = Product::with('orders')->get(); $productsArr = $products->map(function (Product $product){ $productObj = $product->toArray(); $productObj['orders_count'] = $product->orders->count(); return $productObj; });
It helps you to get the total number of orders (records of relationship data) with Product. In this code there is a map method which get the count of orders form the relationship while iterating products.
Here we have use eager load relationship which helps you to reduce the number of query while getting data from table.
-
Return products with number of orders using withCount() function
$products = Product::withCount('orders')->get(); $productsArr = $products->map(function (Product $product){ $productObj = $product->toArray(); $productObj['orders_count'] = $product ->getAttribute('orders_count'); return $productObj; });
This code snippet will help you to get the total number of orders (records of relationship data) with product. There is a map method which get the count of orders form the relationship data while iterating products.
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
- Extract only time from datetime in laravel
- How to change default timestamp fields name in Laravel
- How to get path from current URL in Laravel
- How to authenticate admin users in Laravel ?
- Input file with max size validation in laravel
- How to check records exist in loaded relationship in Laravel blade view
- Validation for multiple forms on same page in laravel
- Cannot end a section without first starting one
- Generate random string lowercase in Laravel
- How to get id of next record in laravel
- Call to undefined method Illuminate\Support\Facades\Request::all()
- Create project table with model and migration
- How to restore deleted records in laravel
- How to check record exist or not in relationship table
- How to get user information using hootlex/laravel-friendships package in laravel
- Laravel 9 route group with controller
- Display success message in laravel
- Always load the relationship data with eager loading in Laravel
- Laravel pagination links with query string
- Drop foreign key column in Laravel using migration
- How to check if user has created any post or not in laravel
- How to check query string exists or not in laravel blade
- Update email with unique validation in laravel
- How to set column as primary key in Laravel model
- How to get last record from object collection in laravel