Home PHP Framework Laravel laravel search delete

laravel search delete

May 21, 2023 am 10:10 AM

Laravel search and delete is a very common development requirement, especially when developing applications such as content management systems or e-commerce websites that require CRUD operations on data. Laravel, as a popular PHP framework, provides a wealth of tools and APIs, making this process very simple.

1. Laravel Search

Implementing the search function in Laravel usually requires the following steps:

  1. Install Laravel Scout

Laravel Scout Suitable for applications that classify and optimize search results, Scout is faster than native search queries, and query components are easier to reconstruct. Laravel Scout uses Elasticsearch or Algolia to perform searches, these search engines are very popular and have extensive community support.

  1. Database Migration

Based on establishing the Model, Controller and database migration files in the Laravel application, we need to perform search-related database migration operations.

For example, in the user database we can add a "searchable" column:

Schema::table('users', function (Blueprint $table) {
    $table->boolean('searchable')->default(false);
});
Copy after login

Here we can set the default value false for searchable, that is, the user does not want to be searched. It can also be configured to set searchable to true after editing the user information, so that the user can be searched.

  1. Use Scout to mark the model

When using Laravel Scout, we need to use the Searchable trait in the corresponding Model.

For example:

namespace App;

use IlluminateDatabaseEloquentModel;
use LaravelScoutSearchable;

class User extends Model
{

use Searchable;

// ...
Copy after login

}

After this process is completed, the model's save(), delete(), restore() and forceDelete() methods will automatically synchronize with the search engine.

  1. Using Algolia or ElasticSearch

Create indexes and format search results in Algolia or ElasticSearch. To optimize search results, we can use Scout's Searchable trait in Laravel.

For example, in Algolia:

namespace App;

use LaravelScoutSearchable;
use AlgoliaScoutExtendedSearchableAggregator;

class Note extends Model
{

use Searchable, Aggregator;

public function toSearchableArray()
{
    $array = $this->toArray();

    // 请求注入时,我们需要更新查询升级和向量分配
    $array = $this->seoInject Boosts($array, [
        'title' => 1000, 
        'content' => 100,
        'body' => 10,
    ]);

    return $array;
}
Copy after login

}

2. Laravel Search and Delete

In Laravel’s CRUD applications, deletion operations are very common. Removal from search results is a relatively complex task as you need to have the deleted data automatically removed from the search engine. This means that we need to operate the database.

The following is the general process for searching and deleting data:

1. Select the data to be deleted in the search results.

2. Mark this data as "delete", update the database, and delete this data from the search engine.

namespace AppHttpControllers;

use AppNote;
use IlluminateHttpRequest;

class NoteController extends Controller
{

/**
 * 删除一条笔记修饰符信息请求
 *
 * @param int $id
 * @return IlluminateHttpResponse
 */
public function destroy($id)
{
    $note = Note::find($id);

    if ($note) {
        // 从数据库中删除
        $note->delete();

        // 从搜索引擎中删除
        $note->unsearchable();
    }

    return redirect()
        ->route('notes.index')
        ->with('success', 'Note deleted successfully.');
}
Copy after login

}

In the above example, we deleted the note from the database and deleted it from the search engine. Next, we’ll discuss how to implement bulk deletions in search results.

3. Implement batch deletion operations

Before deleting multiple results, we need to develop a multi-select box and delete button on the front end. Then, we need to implement the batch delete operation in the controller. This part of the code includes:

  1. Get all the notes to be deleted.
  2. Mark these notes as "Delete" in the database.
  3. Remove these notes from search engines.
  4. Redirect to the original route.

For example, in the NoteController.php file, implement batch deletion operations:

/**
 * 删除多条笔记发生请求
 *
 * @param Request $request
 * @return IlluminateHttpResponse
 */
public function multiDestroy(Request $request)
{
    $notesId = $request->ids;

    foreach ($notesId as $noteId) {
        $note = Note::find($noteId);
        if ($note) {
            $note->delete();
            $note->unsearchable();
        }
    }

    return redirect()
        ->route('notes.index')
        ->with('success', 'Notes were deleted successfully.');
}
Copy after login

In the above code, we traverse all the note objects to be deleted, and delete them in the database and They are marked for deletion in search engines. This process is very similar to single deletion.

4. Summary

This article introduces how to implement search and delete in Laravel applications, covering the basic usage and controller processing methods of the Laravel framework and Scout module. You can use this example to implement the same function in your own Laravel application, making your development more convenient.

The above is the detailed content of laravel search delete. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Which is better, Django or Laravel? Which is better, Django or Laravel? Mar 28, 2025 am 10:41 AM

Both Django and Laravel are full-stack frameworks. Django is suitable for Python developers and complex business logic, while Laravel is suitable for PHP developers and elegant syntax. 1.Django is based on Python and follows the "battery-complete" philosophy, suitable for rapid development and high concurrency. 2.Laravel is based on PHP, emphasizing the developer experience, and is suitable for small to medium-sized projects.

Laravel and the Backend: Powering Web Application Logic Laravel and the Backend: Powering Web Application Logic Apr 11, 2025 am 11:29 AM

How does Laravel play a role in backend logic? It simplifies and enhances backend development through routing systems, EloquentORM, authentication and authorization, event and listeners, and performance optimization. 1. The routing system allows the definition of URL structure and request processing logic. 2.EloquentORM simplifies database interaction. 3. The authentication and authorization system is convenient for user management. 4. The event and listener implement loosely coupled code structure. 5. Performance optimization improves application efficiency through caching and queueing.

Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

Which is better PHP or Laravel? Which is better PHP or Laravel? Mar 27, 2025 pm 05:31 PM

PHP and Laravel are not directly comparable, because Laravel is a PHP-based framework. 1.PHP is suitable for small projects or rapid prototyping because it is simple and direct. 2. Laravel is suitable for large projects or efficient development because it provides rich functions and tools, but has a steep learning curve and may not be as good as pure PHP.

Is Laravel a frontend or backend? Is Laravel a frontend or backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendframeworkbuiltonPHP,designedforwebapplicationdevelopment.Itfocusesonserver-sidelogic,databasemanagement,andapplicationstructure,andcanbeintegratedwithfrontendtechnologieslikeVue.jsorReactforfull-stackdevelopment.

How to learn Laravel How to learn Laravel for free How to learn Laravel How to learn Laravel for free Apr 18, 2025 pm 12:51 PM

Want to learn the Laravel framework, but suffer from no resources or economic pressure? This article provides you with free learning of Laravel, teaching you how to use resources such as online platforms, documents and community forums to lay a solid foundation for your PHP development journey from getting started to master.

Laravel's Versatility: From Simple Sites to Complex Systems Laravel's Versatility: From Simple Sites to Complex Systems Apr 13, 2025 am 12:13 AM

The Laravel development project was chosen because of its flexibility and power to suit the needs of different sizes and complexities. Laravel provides routing system, EloquentORM, Artisan command line and other functions, supporting the development of from simple blogs to complex enterprise-level systems.

Laravel user login function Laravel user login function Apr 18, 2025 pm 12:48 PM

Laravel provides a comprehensive Auth framework for implementing user login functions, including: Defining user models (Eloquent model), creating login forms (Blade template engine), writing login controllers (inheriting Auth\LoginController), verifying login requests (Auth::attempt) Redirecting after login is successful (redirect) considering security factors: hash passwords, anti-CSRF protection, rate limiting and security headers. In addition, the Auth framework also provides functions such as resetting passwords, registering and verifying emails. For details, please refer to the Laravel documentation: https://laravel.com/doc

See all articles