When we do multi-condition search, we can use the traditional array method. Today I will introduce another one to you, which is the ThinkPHP6 searcher.
1. Understand the definition of searcher
Let’s first take a look at the description of searcher in the manual.
The function of the searcher is to encapsulate the query condition expression of the field (or search identifier). A searcher corresponds to a special method (the method must be of public type). The method naming convention is :
search FieldName Attr
FieldName is the camel case conversion of the data table field. The searcher is only triggered when the withSearch method is called.
2. Establish search conditions
How to use the searcher? Let's explain with examples.

We have three search conditions: goods_cate_id (category filtering), goods_status (status filtering), goods_name (keyword filtering).
We first establish three search methods:
public function searchGoodsCateIdAttr($query, $value)
{
$query->where('goods_cate_id','in', $value);
}
public function searchGoodsStatusAttr($query, $value)
{
$query->where('goods_status','=', $value);
}
public function searchGoodsNameAttr($query, $value)
{
$query->where('goods_name','like', '%'.$value.'%');
}Pay special attention to the naming of search methods, we must strictly follow the definitions in the official manual. For example, if the search field of our data table is goods_cate_id, then when defining the method, the following is wrong:
1. Public function searchGoodsCateId($query, $value), less Attr.
2. Public function searchGoodsCateIDAttr($query, $value), the camel case is written incorrectly.
3. Public function searchGoodsCateAttr($query, $value), the Id is written in camel case incorrectly.
4. Private function searchGoodsCateIdAttr($query, $value) must be public.
3. Trigger search
Searcher is only triggered when the withSearch method is called.
$goodsData=Goods::name('goods')->withSearch(['goods_cate_id','goods_status','goods_name'],[
'goods_cate_id'=>$cateChilerenId,
'goods_status'=>$goods_status,
'goods_name'=>$goods_name
])->paginate(10);In addition, in addition to searching, the searcher can also perform sorting functions, so I won’t give an example here.
During debugging, we can also print the sql statement. If there is no result we want, we can directly analyze the sql statement.
echo Goods::getLastSql();
The above is an explanation of the use of the ThinkPHP6 search engine. When doing multi-condition searches, you can use whichever one you like, or you can choose according to your own situation.
The above is the detailed content of Use of ThinkPHP6 search engine. For more information, please follow other related articles on the PHP Chinese website!
What Are the Key Features of ThinkPHP's Built-in Testing Framework?Mar 18, 2025 pm 05:01 PMThe article discusses ThinkPHP's built-in testing framework, highlighting its key features like unit and integration testing, and how it enhances application reliability through early bug detection and improved code quality.
How to Use ThinkPHP for Building Real-Time Stock Market Data Feeds?Mar 18, 2025 pm 04:57 PMArticle discusses using ThinkPHP for real-time stock market data feeds, focusing on setup, data accuracy, optimization, and security measures.
What Are the Key Considerations for Using ThinkPHP in a Serverless Architecture?Mar 18, 2025 pm 04:54 PMThe article discusses key considerations for using ThinkPHP in serverless architectures, focusing on performance optimization, stateless design, and security. It highlights benefits like cost efficiency and scalability, but also addresses challenges
How to Implement Service Discovery and Load Balancing in ThinkPHP Microservices?Mar 18, 2025 pm 04:51 PMThe article discusses implementing service discovery and load balancing in ThinkPHP microservices, focusing on setup, best practices, integration methods, and recommended tools.[159 characters]
What Are the Advanced Features of ThinkPHP's Dependency Injection Container?Mar 18, 2025 pm 04:50 PMThinkPHP's IoC container offers advanced features like lazy loading, contextual binding, and method injection for efficient dependency management in PHP apps.Character count: 159
How to Use ThinkPHP for Building Real-Time Collaboration Tools?Mar 18, 2025 pm 04:49 PMThe article discusses using ThinkPHP to build real-time collaboration tools, focusing on setup, WebSocket integration, and security best practices.
What Are the Key Benefits of Using ThinkPHP for Building SaaS Applications?Mar 18, 2025 pm 04:46 PMThinkPHP benefits SaaS apps with its lightweight design, MVC architecture, and extensibility. It enhances scalability, speeds development, and improves security through various features.
How to Build a Distributed Task Queue System with ThinkPHP and RabbitMQ?Mar 18, 2025 pm 04:45 PMThe article outlines building a distributed task queue system using ThinkPHP and RabbitMQ, focusing on installation, configuration, task management, and scalability. Key issues include ensuring high availability, avoiding common pitfalls like imprope


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Dreamweaver Mac version
Visual web development tools

Atom editor mac version download
The most popular open source editor






