Laravel is very famous and widely used PHP Framework. Nowadays, I am doing development in Laravel along with other RoR and Java projects.
I was working on a Laravel 8 project in which I had to show related records and also by any criteria if related record doesn’t exist then don’t show main any record.
To achieve required results, I used whereHas() and with() eloquent methods. For this, there must be hasMany() and belongTo() method defined in models.
For example, I had two models Customer and Order.
In Customer Model.
public function orders() {
$this->hasMany("Order");
}
In Order Model.
public function customer() {
$this->belongsTo("Cutomer");
}
Then, I created a repository file where I write all queries.
public function fetchCustomerOrders($where) {
$callBack = function ($query) use($where) {
$query->where(“customer_id”, “=”, $where[“customer_id”])
}
$customers = Customer::whereHas(“orders”, $callback)
->with([‘order’ => $callback])->get();
return $customers;
}
To make code clean, I made a where clause function in “$callback” variable, you can also create a separate private function in which you can define all your where clause and then call it in whereHas and with clauses.
I hope this will help.
When building real-world Laravel applications, email handling quickly becomes scattered. You send emails from controllers,…
Build flexible, readable, and secure query filters across multiple Laravel models — no more bloated…
Artificial Intelligence is transforming how we work, create, and earn. But most people get stuck…
In today’s fast-paced world, businesses can no longer rely solely on traditional methods to stay…
Add an Addon Domain in GoDaddy with Web Hosting Deluxe (Step-by-Step Guide). If you are…
The ability to create reliable APIs is essential in today's web development environment. I'll show…