Comment implémenter un système suivant des utilisateurs dans Laravel?
Créer un tableau de migration nommé suit, y compris les clés étrangères de Follower_id et suivi_ID, et définir un index unique pour empêcher l'attention répétée; 2. Définissez les deux relations appartensibles, suivez () et abonnés () dans le modèle d'utilisateur, représentant la personne que l'utilisateur suit et l'utilisateur qui suit l'utilisateur; 3. Créez un suivi suivant et implémentez les méthodes suivantes et désabonnelles, gérez l'état d'attention via la jointure et le détachement, et ajoutez la logique pour interdire l'attention; 4. Registre des routes de suivi et de désabonnement dans web.php; 5. Affichez dynamiquement l'attention ou l'annulation dans le modèle de lame selon que l'utilisateur actuel a suivi; 6. Ajouter éventuellement la méthode de suivi de l'IS pour simplifier le jugement de l'état de l'attention; 7. S'il est utilisé dans l'API, il peut retourner une réponse JSON. Cette solution est basée sur la mise en œuvre éloquente de la relation entre Laravel, avec une structure claire et facile à échelle.
La mise en œuvre d'un système suivant de l'utilisateur dans Laravel est simple en utilisant des relations éloquentes et une table de pivot. Voici un guide étape par étape pour le configurer correctement.

1. Créez la migration suivante
Vous avez besoin d'une table de pivot pour stocker les relations suivantes entre les utilisateurs. Exécutez la commande artisan suivante:
PHP Artisan Make: Migration Create_follows_Table
Dans le fichier de migration généré:

Schéma :: Create ('suit', fonction (tableau Blueprint $) { $ table-> id (); $ Table-> ForeignId ('Follower_id') -> contrainte ('utilisateurs') -> ondelete ('Cascade'); $ Table-> ForeignId ('suivant_id') -> contrainte ('utilisateurs') -> onDelete ('Cascade'); $ Table-> TimeStamps (); // Empêcher le double suit $ table-> unique (['follower_id', 'suivant_id']); });
Exécutez la migration:
PHP Artisan Migrate
2. Configurer la relation éloquente dans le modèle utilisateur
Dans votre modèle User.php
, définissez les relations:

// app / modèles / user.php fonction publique suivant () { return $ this-> appartenance (user :: class, 'suit', 'follower_id', 'suivant_id'); } Followers de la fonction publique () { return $ this-> appartenance (user :: class, 'suit', 'suivant_id', 'follower_id'); }
Cela met en place une relation plusieurs à plusieurs où:
-
following()
Renvoie les utilisateurs que cet utilisateur suit. -
followers()
renvoie les utilisateurs qui suivent cet utilisateur.
3. Créez des méthodes de contrôleur suivantes / désabonnement
Créez un contrôleur (par exemple, FollowController
) pour gérer les actions de suivi et de désabonnement.
PHP Artisan Make: Controller FollowController
Dans FollowController.php
:
Utilisez App \ Models \ User; Utiliser illuminate \ http \ request; Fonction publique Suivre (utilisateur de l'utilisateur) { auth () -> user () -> suivant () -> attach ($ user-> id); return back () -> avec ('succès', 'vous suivez maintenant'. $ user-> name); } Fonction publique Débranchez-vous (utilisateur de l'utilisateur) { auth () -> user () -> suivant () -> détach ($ user-> id); return back () -> avec ('succès', 'vous avez non suivi'. $ user-> name); }
⚠️ Assurez-vous de vérifier qu'un utilisateur ne peut pas se suivre (facultatif mais recommandé):
if (auth () -> id () === $ user-> id) { return back () -> witherrors («vous ne pouvez pas vous suivre.»); }
4. Ajouter des itinéraires
Dans web.php
:
Utilisez App \ Http \ Controllers \ FollowController; Route :: Post ('/ suivant / {user}', [suivantController :: class, 'suivant']) -> name ('suivant'); Route :: Post ('/ désabonnement / {user}', [suivantController :: class, 'nonbown']) -> name ('non suivi');
5. Ajouter des boutons Suivre / désabonner dans les vues de la lame
Dans votre profil utilisateur ou votre liste d'utilisateurs:
@if (auth () -> user () -> id! == $ user-> id) @if (auth () -> user () -> suivant-> contient ($ user-> id)) <form action = "{{Route ('désabonnement', $ utilisateur)}}" Method = "Post"> @csrf @Method ('Delete') <Button Type = "Soumider"> Désignez </fut Button> </ form> @autre <form action = "{{Route ('suivi', $ user)}}" méthode = "post"> @csrf <bouton type = "soumettre"> Suivez </fontificateur> </ form> @endif @endif
Remarque: Utilisez
@method('DELETE')
si vous préférez les routes RESTful, ou conservez les deux et ajustez les routes en conséquence.
6. Facultatif: ajouter des méthodes d'assistance dans le modèle utilisateur
Pour faciliter les chèques:
// dans user.php La fonction publique est suivi (utilisateur de l'utilisateur) { return $ this-> suivant () -> où ('suivant_id', $ user-> id) -> existant (); } // Utilisation dans Blade: {{Auth () -> User () -> isFollowing ($ user)? 'Désabonner': 'Suivre'}}
7. Facultatif: utilisez des routes API (pour les spas)
Si la construction d'une API, utilisez des itinéraires api
et retournez JSON:
// routes / api.php Route :: Post ('/ suivi / {user}', [api \ suivantController :: class, 'suivez']);
Et dans le contrôleur:
return réponse () -> JSON ([ 'statut' => 'succès', 'Message' => 'Utilisateur suivi' ]));
Résumé
Vous avez maintenant un système suivant qui fonctionne avec:
- Une table de pivot
follows
- Relations éloquentes de plusieurs à plusieurs
- Actions du contrôleur pour suivre / désabonner
- La lame se forme pour interagir avec eux
Il est efficace, évolutif et facile à étendre (par exemple, ajouter les demandes suivantes, les notifications, etc.).
Fondamentalement, juste une table de pivot et deux relations belongsToMany
- Laravel le rend simple.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le cache de configuration de Laravel améliore les performances en fusionnant tous les fichiers de configuration dans un seul fichier de cache. L'activation du cache de configuration dans un environnement de production peut réduire les opérations d'E / S et l'analyse de fichiers sur chaque demande, accélérant ainsi le chargement de configuration; 1. Il doit être activé lorsque l'application est déployée, la configuration est stable et aucune modification fréquente n'est requise; 2. Après l'activation, modifiez la configuration, vous devez ré-paraître phpartisanconfig: cache pour prendre effet; 3. Évitez d'utiliser une logique dynamique ou des fermetures qui dépendent des conditions d'exécution dans le fichier de configuration; 4. Lors du dépannage des problèmes, vous devez d'abord effacer le cache, vérifiez les variables .env et re-cache.

La façon la plus courante de générer une route nommée dans Laravel est d'utiliser la fonction d'assistance Route (), qui correspond automatiquement au chemin en fonction du nom de route et gère la liaison des paramètres. 1. Passez le nom et les paramètres de la route dans le contrôleur ou la vue, tels que Route ('user.profile', ['id' => 1]); 2. Lorsque plusieurs paramètres, il vous suffit de passer le tableau, et l'ordre n'affecte pas la correspondance, telle que Route ('user.post.show', ['id' => 1, 'postid' => 10]); 3. Les liens peuvent être directement intégrés dans le modèle de lame, tels que la visualisation des informations; 4. Lorsque des paramètres facultatifs ne sont pas fournis, ils ne sont pas affichés, comme Route («user.post»,

Le cœur de la gestion des demandes et des réponses HTTP dans Laravel est de maîtriser l'acquisition de données de demande, de retour et de téléchargement de fichiers. 1. Lors de la réception de données de demande, vous pouvez injecter l'instance de demande via des invites de type et utiliser des méthodes d'entrée () ou magiques pour obtenir des champs, et combiner valider () ou des classes de demande de formulaire de vérification; 2. La réponse de retour prend en charge les chaînes, les vues, les JSON, les réponses avec les codes d'état et les en-têtes et les opérations de redirection; 3. Lors du traitement des téléchargements de fichiers, vous devez utiliser la méthode Fichier () et Store () pour stocker des fichiers. Avant le téléchargement, vous devez vérifier le type de fichier et la taille, et le chemin de stockage peut être enregistré dans la base de données.

Les éloquents de Laravel sont un outil qui résume la logique de requête commune, divisée en portée locale et en portée mondiale. 1. La portée locale est définie avec une méthode commençant par la portée et doit être appelée explicitement, comme POST :: publiée (); 2. La portée globale est automatiquement appliquée à toutes les requêtes, souvent utilisées pour la suppression douce ou les systèmes multi-locataires, et l'interface de portée doit être implémentée et enregistrée dans le modèle; 3. La portée peut être équipée de paramètres, tels que le filtrage des articles par année ou par mois, et les paramètres correspondants sont passés lors de l'appel; 4. Faites attention aux spécifications de dénomination, aux appels de chaîne, à la désactivation temporaire et à l'expansion de la combinaison lors de l'utilisation pour améliorer la clarté du code et la réutilisabilité.

Il existe deux méthodes principales pour la vérification de la demande dans Laravel: Vérification du contrôleur et classes de demande de formulaire. 1. La méthode Validate () dans le contrôleur convient aux scénarios simples, passant directement dans les règles et aux erreurs de retour automatiquement; 2. La classe FormRequest convient à des scénarios complexes ou réutilisables, créant des classes via Artisan et définissant des règles dans les règles () pour réaliser le découplage et la réutilisation du code; 3. Les invites d'erreur peuvent être personnalisées via des messages () pour améliorer l'expérience utilisateur; 4. Définition de l'alias de champ via des attributs () pour rendre le message d'erreur plus amical; Les deux méthodes présentent leurs avantages et leurs inconvénients, et la solution appropriée doit être sélectionnée en fonction des besoins du projet.

Database Factory est un outil de Laravel pour générer des données fausses du modèle. Il crée rapidement les données requises pour les tests ou le développement en définissant des règles de champ. Par exemple, après avoir utilisé PhpartisanMake: Factory pour générer des fichiers d'usine, définit la logique de génération de champs tels que le nom et le courrier électronique dans la méthode de définition () et crée des enregistrements via l'utilisateur :: factory () -> create (); 1. Prend en charge la génération par lots de données, telles que l'utilisateur :: Factory (10) -> create (); 2. Utilisez make () pour générer des tableaux de données non inventés; 3. Permet l'écrasement temporaire des valeurs de champ; 4. Soutient les relations d'association, comme la création automatique

ThetranslatorfacadeinLaraveLisusesedForLocalisation par la mise en œuvre des étages et un éternelage et un émerveillement denanguagesaTrime.

UseMockeryForcustomDependcesntencesBySettingExpectations withShouldReceive (). 2.UseLaravel’sfake () MethodForfacadesLikEmail, file d'attente, andhttptopReventReinteractions.3.replaceContainer-BoundServices with $ this-> mock () ForcLenersyntax.4.Usehtp
