Gérer les formes plurielles irrégulières avec les modèles Laravel

Attention
Vous trouverez une version plus à jour de cet article sur Apical, votre plateforme d'apprentissage :
https://apical.xyz/fiches/le_modele_de_donnees/Formes_plurielles_irregulieres

Apical, ma plateforme d'apprentissage

Tôt ou tard, vous aurez à travailler avec une table dont la forme plurielle du nom n'est pas obtenue en ajoutant simplement un s (ex : un travail - des travaux). Si les exceptions sont nombreuses en français, le même problème se pose avec les noms de table en anglais : person - people, fish - fishes, dwarf - dwarves, etc.

▼Publicité

Si vous tentez de créer un modèle Travail qui interagit avec la table travaux et que vous ne prenez aucune précaution, vous obtiendrez un message du genre « 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'helloworld.travails' doesn't exist (SQL: select count(*) as aggregate from `travails`)' ».

Table 'helloworld.travails' doesn't exist

Pour régler ce problème, on précisera le nom de la table associée au modèle à l'aide d'une propriété dans la classe.

Ex :

Fichier modèle (PHP)

class Travail extends Model

{

    /**

     * Table associée au modèle.

     *

     * @var string

     */

    protected $table = 'travaux';

}

Catégories