0
votes

LARAVERL MODESTES MODESTS (Tables DB) identiques - Un moyen efficace de programmation

Je suis un débutant avec Laravel et j'ai un projet avec plusieurs tables avec les mêmes champs (E.G. ID, nom).

J'ai environ 10 tables avec cette structure (par exemple pays, ville, type d'utilisateurs, ....)

J'ai lu qu'il est correct d'avoir pour chaque table un modèle et un contrôleur séparé.

est-ce correct? Y a-t-il un moyen efficace de programmer comme peut-être créer un seul modèle et un contrôleur et les prolonger peut-être?

Toute suggestion?

merci.


1 commentaires

Est-ce la même structure exacte?


3 Réponses :


0
votes

Il est correct d'avoir une table séparée pour chaque modèle et contrôleur.

Vous pouvez avoir tout dans une table et remplacer les méthodes du modèle éloquent pour tout retirer de la même table. Chacun de vos modèles aurait besoin d'avoir la propriété $ définie sur la même table.

Mais si vous l'avez fait, vous devez ajouter une autre colonne à la table principale à Identifiez le type de modèle pour chaque ligne. Donc, la représentation JSON de chacune de vos lignes ressemblerait à quelque chose comme: xxx

puis dans le modèle dont vous auriez besoin de remplacer la méthode nouvelle (code> Pour ajouter un lieu d'accumulation de la requête à la valeur correcte .

Mais cela serait tout effort gaspillé lorsque vous venez ajouter plus de propriétés ou de relations à vos données. Par exemple, un appartenir à un pays vous souhaitez inclure une colonne country_id sur votre villes table pour toucher la relation. A quel point les tables de ville et pays ne sont plus identiques.

la meilleure pratique consiste à avoir une table (créée par une migration), Modèle et contrôleur pour chaque entité de données dans votre application.


0 commentaires

1
votes

Je ne le pense pas, même si vous trouvez un moyen de le retirer éventuellement, cela va revenir vous mordre, mais si vous essayez d'éviter la répétition de la logique commerciale liée à la base de données, vous devriez regarder dans le motif de code du référentiel. Une bonne étude de cas est référentiel L5 . Bien que je n'accepte pas cela dans son intégralité, car il est très indiciqué de la façon dont vous devriez la mettre en œuvre, il vous donnera cependant un sens de la manière dont vous pouvez réduire la répétition de quelques logiques commerciales et ou seulement répéter ce qui est absolument nécessaire. < / p>


0 commentaires

1
votes

Cela dépend du sens de ces tables.

Laravel Utilisez le motif de conception MVC, cela signifie que chaque concept est représenté par un modèle pour persister les données, un contrôleur de le manipuler et une vue pour le montrer.

à Laravel, vous devriez penser par modèle et non par table.

Dans votre cas si vous souhaitez regrouper vos tables en une parce qu'ils ont exactement les mêmes champs, vous le pouvez, et ce sera un modèle. puis créer un modèle et un contrôleur pour cela.

Je conseille de séparer les préoccupations, c'est toujours mieux. Ensuite, si sur ces table a besoin d'une mise à jour, que vous n'avez pas à tout traverser.

Vous pouvez demander plus de détails pour plus de détails.


0 commentaires