Maison >cadre php >Laravel >Comment remplacer l'identifiant de clé primaire dans Laravel

Comment remplacer l'identifiant de clé primaire dans Laravel

PHPz
PHPzoriginal
2023-04-21 10:02:29703parcourir

Laravel est un framework PHP extrêmement populaire. Il possède une belle syntaxe et des fonctions puissantes, permettant aux développeurs de créer facilement des applications Web efficaces. Dans Laravel, chaque table de base de données doit avoir une clé primaire, qui est généralement par défaut le champ "id", et ce champ doit être un champ à incrémentation automatique. Cependant, dans certains scénarios commerciaux spécifiques, nous devrons peut-être remplacer le champ « id » par d'autres champs comme clé primaire. Dans ce cas, nous devons utiliser la méthode de remplacement de clé primaire fournie dans la documentation officielle de Laravel.

1. Contexte

Bien que ce soit la situation la plus courante d'utiliser la clé primaire "id" par défaut dans Laravel, parfois la conception originale de la table de base de données peut ne pas être suffisamment standardisée ou unique. Dans ce cas, cela est nécessaire. pour remplacer la clé d'origine. La clé primaire est remplacée par d'autres champs. Par exemple, dans certains scénarios professionnels, il peut être nécessaire d'utiliser le numéro de téléphone mobile de l'utilisateur comme identifiant unique au lieu du champ « id » par défaut. Si le champ « id » par défaut est utilisé comme clé primaire, le système ne peut pas interroger rapidement et localiser de manière unique les objets utilisateur dans le système via des numéros de téléphone mobile. Par conséquent, nous devons utiliser le numéro de téléphone mobile comme clé primaire pour mieux résoudre ce problème.

Dans Laravel, nous pouvons facilement remplacer les clés primaires grâce au puissant modèle de données d'Eloquent ORM.

2. Comment utiliser

La méthode de remplacement de la clé primaire fournie dans Laravel est très simple. Il vous suffit de définir un attribut $primaryKey dans le modèle correspondant et de l'attribuer au nom du champ que vous devez remplacer par la clé primaire. clé. Par exemple, si nous devons utiliser le numéro de téléphone mobile de l'utilisateur comme clé primaire, nous pouvons définir le code suivant dans le modèle utilisateur :

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $primaryKey = 'phone';  // 将phone字段设为主键
}

De cette façon, lors de l'utilisation d'Eloquent ORM pour interroger, Laravel utilisera le "téléphone" champ comme clé primaire par défaut. Par exemple, si nous devons interroger les informations d'un utilisateur, nous pouvons utiliser le code suivant :

$user = App\User::find('13888888888');

De cette façon, nous pouvons interroger les informations de l'utilisateur via le numéro de téléphone mobile de l'utilisateur « 13888888888 ».

3. Situations applicables

Dans le développement réel, il peut être rare de remplacer la clé primaire, mais c'est très pratique dans certains scénarios commerciaux spécifiques. Par exemple :

  1. Projet multilingue : si votre application doit prendre en charge plusieurs langues, une exigence courante consiste à utiliser un certain champ comme identifiant unique dans plusieurs langues. Dans ce cas, la clé primaire doit être remplacée.
  2. Source de données unifiée : si votre application doit lire des données provenant de plusieurs sources de données et que les clés primaires de ces sources de données sont incohérentes, vous devrez peut-être les remplacer par une clé primaire unifiée.
  3. Autres scénarios : dans le développement réel, il y aura de nombreux autres scénarios dans lesquels les clés primaires devront être remplacées, comme l'interrogation d'informations sur le produit en fonction des numéros de produit.

4. Résumé

Laravel fournit une méthode très pratique de remplacement des clés primaires, qui peut facilement résoudre le problème de l'utilisation de clés primaires autres que par défaut dans certains scénarios commerciaux spécifiques. Bien que le remplacement des clés primaires soit relativement rarement utilisé dans le développement réel, il s'agit en effet d'une bonne solution de mise en œuvre qui permet aux développeurs de choisir différentes clés primaires en fonction des différents besoins de l'entreprise, ce qui correspondra mieux à la logique des exigences de l'application, tout en améliorant également l'application. performance.

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