Maison >cadre php >Laravel >recherche laravel supprimer

recherche laravel supprimer

PHPz
PHPzoriginal
2023-05-21 10:10:36514parcourir

La recherche et la suppression de Laravel sont une exigence de développement très courante, en particulier dans le développement d'applications qui nécessitent des opérations CRUD sur les données, telles que les systèmes de gestion de contenu ou les sites Web de commerce électronique. Laravel, en tant que framework PHP populaire, fournit une multitude d'outils et d'API, rendant ce processus très simple.

1. Laravel Search

La mise en œuvre de la fonction de recherche dans Laravel nécessite généralement les étapes suivantes :

  1. Installer Laravel Scout

Laravel Scout convient aux applications qui classifient et optimisent les résultats de recherche. Scout est plus rapide que les requêtes de recherche natives. Rapides, les composants de requête sont plus faciles à refactoriser. Laravel Scout utilise Elasticsearch ou Algolia pour effectuer des recherches, ces moteurs de recherche sont très populaires et bénéficient d'un large support communautaire.

  1. Migration de base de données

Sur la base de l'établissement des fichiers de migration de modèle, de contrôleur et de base de données dans l'application Laravel, nous devons effectuer des opérations de migration de base de données liées à la recherche.

Par exemple, dans la base de données des utilisateurs, nous pouvons ajouter une colonne « consultable » :

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

Ici, nous pouvons définir la valeur par défaut false pour consultable, c'est-à-dire que l'utilisateur ne souhaite pas être recherché. Il peut également être configuré pour définir searchable sur true après avoir modifié les informations utilisateur, afin que l'utilisateur puisse être recherché.

  1. Utilisez Scout pour marquer le modèle

Lors de l'utilisation de Laravel Scout, nous devons utiliser le trait Searchable dans le modèle correspondant.

Par exemple :

namespace App ;

utilisez IlluminateDatabaseEloquentModel;
utilisez LaravelScoutSearchable;

class User extends Model
{

use Searchable;

// ...

}

Une fois ce processus terminé, les sauvegardes (), les suppressions () et les restaurations du modèle () et forceDelete() se synchroniseront automatiquement avec les moteurs de recherche.

  1. Utilisez Algolia ou ElasticSearch

Créez des index et formatez les résultats de recherche dans Algolia ou ElasticSearch. Pour optimiser les résultats de recherche, nous pouvons utiliser le trait Searchable de Scout dans Laravel.

Par exemple, dans Algolia :

namespace App ;

utilisez LaravelScoutSearchable ;
utilisez 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;
}

}

2.

dans l'application CRUD de Lara In vel, Les opérations de suppression sont très courantes. La suppression des résultats de recherche est une tâche relativement complexe car vous devez supprimer automatiquement les données supprimées du moteur de recherche. Cela signifie que nous devons exploiter la base de données.

Voici le processus général de recherche et de suppression de données :

1. Sélectionnez les données à supprimer dans les résultats de recherche.

2. Marquez ces données comme « Supprimer », mettez à jour la base de données et supprimez ces données des moteurs de recherche.

supprimé du moteur. Nous verrons ensuite comment mettre en œuvre des suppressions groupées dans les résultats de recherche.

3. Implémenter des opérations de suppression par lots

Avant de supprimer plusieurs résultats, nous devons développer une boîte de sélection multiple et un bouton de suppression sur le front-end. Ensuite, nous devons implémenter l’opération de suppression par lots dans le contrôleur. Cette partie du code comprend :

Récupérer toutes les notes à supprimer.

Marquez ces notes comme « Supprimer » dans la base de données.

Supprimez ces notes des moteurs de recherche.

Redirection vers l'itinéraire d'origine.

Par exemple, dans le fichier NoteController.php, implémentez l'opération de suppression par lots :

/**
 * 删除一条笔记修饰符信息请求
 *
 * @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.');
}
    Dans le code ci-dessus, nous parcourons tous les objets de note à supprimer et les marquons comme supprimés dans la base de données et le moteur de recherche. Ce processus est très similaire à la suppression unique.
  1. 4. Résumé
  2. Cet article présente comment implémenter la recherche et la suppression dans les applications Laravel, couvrant l'utilisation de base et les méthodes de traitement des contrôleurs du framework Laravel et du module Scout. Vous pouvez utiliser cet exemple pour implémenter la même fonction dans votre propre application Laravel, rendant ainsi votre développement plus pratique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn