This article mainly introduces to you the relevant information about the query builder Query Builder superimposed chain call in laravel skills. The article introduces it in detail through the example code. It has certain reference learning value for everyone's study or work. I hope it can help. to everyone.
Introduction to query builder
Laravel query builder (query builder) provides a convenient and fluent interface for establishing and executing database search syntax
Use PDO parameter binding , to protect applications from SQL injection. Therefore, the incoming parameters do not need to escape special characters
Basically, all database operations can be satisfied, and they can be executed on all supported database systems
Introduction
Today I would like to introduce to you a little trick of laravel query constructor. It is not mentioned in detail in the official document examples. It is not a high-end skill. Many people may be using it. Students who don’t know can take a look.
In business code, queries are often made based on different conditions. For a simple example, we now want to query the user list, arranged in reverse chronological order, and status and type may be used as qualifying conditions.
I wrote it like this at first
if($status && $type) { $users = User::where('status', $status)->where('type', $type)->latest()->get(); } else if ($status) { $users = User::where('status', $status)->latest()->get(); } else if ($type) { $users = User::where('status', $type)->latest()->get(); } else { $users = User::latest()->get(); }
$query = User::query(); // 如果用DB: $query = DB::table('user'); if ($status) { $query->where('status', $status); } if ($type) { $query->where('type', $type); } $users = $query->latest()->get();
function foo($query) { $query->with(['girl', 'gay']) ->latest() ->get(); } $query = User::query(); $users = foo($query);
$query_1 = User::query(); $query_2 = clone $query_1; $users_1 = $query_1->where('type', 1)->latest()->get(); $users_2 = $query_2->where('type', 2)->latest()->get(); // 错误 $users_2 = $query_1->where('type', 1)->latest()->get(); // 这样写得到得是type = 1 and $type = 2
Recommended 7 articles about query constructors
Laravel learning-database operations and query construction Sample code sharing of the builder
ThinkPHP5’s query constructor working principle
The above is the detailed content of Laravel query builder Query Builder overlay chain call method tutorial. For more information, please follow other related articles on the PHP Chinese website!