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

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';

}

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories