PHP

How to use whereHas() and with() in laravel 8?

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.

websourceblog

ReactJs, NodeJs, Amazon Web Services, Symfony, Laravel, CodeIgniter, Zend Framework, WordPress, Drupal, Magento, Angular

Recent Posts

Developing a RESTful API with Node.js, Express.js, MongoDB, and TypeScript

The ability to create reliable APIs is essential in today's web development environment. I'll show…

4 weeks ago

XML in REST API response and SOAP XML.

The difference between XML that we get in response to any REST API and XML…

6 months ago

How to install and configure Apache2 on WSL2?

I hope you already have WSL2 installed and enabled. So, setting up Apache2 on WSL2…

10 months ago

How to install NVM on Windows?

Install NVM on Windows Node Js is a JavaScript runtime environment used widely in today’s…

11 months ago

How to reset WSL 2 user’s password?

You can easily reset WSL 2 users' password, by just following the following steps. Open…

1 year ago

DreamHost Web Hosting

DreamHost a web hosting company, founded in 1997. It is offering sort of hosting services,…

2 years ago