Je suis assez heureux de travailler sur un projet avec des noms de colonnes (pas) très cohérents dans notre base de données MySQL. Nous avons camelCase, PascalCase, 'Id', ID et ça me rend fou. J'ai décidé de commencer à utiliser Eloquent dans notre application (qui n'est PAS Laravel). J'aimerais avoir une méthode pour recevoir facilement la valeur de la clé primaire sans connaître le nom de la colonne, par ex.
// User's primary key column is called UserID
$user = User::find(1337);
$userId = $user->id(); // = 1337
Y a-t-il une façon éloquente de le faire ou vais-je devoir ajouter cette méthode moi-même?
Vous devriez avoir défini un champ protégé dans votre modèle indiquant à Eloquent quelle est la colonne de clé primaire:
protected $primaryKey = 'guid';
Ensuite, vous pouvez accéder à cette propriété dans votre modèle
La méthode getKey()
du modèle devrait vous donner la valeur de la clé primaire, tandis que getKeyName()
devrait vous dire quel nom de colonne est utilisé pour la clé primaire