telecharger - template laravel 5



Modèle de Laravel contenant plusieurs classes (1)

Je suis nouveau à laravel, venant de Codeigntier. J'essaie de comprendre le modèle / les classes / la convention éloquente qu'utilise Laravel. Je sais que je peux faire une table dans ma base de données appelée, par exemple, "catégories". Ensuite, je peux faire un fichier dans mon dossier de modèles appelé category.php contenant juste le code suivant:

Class Category extends Eloquent { }

qui se connecte automatiquement avec le nom de la table avec la version plurielle du nom ("categories") et me donne accès à toutes les commandes Eloquent dans mon contrôleur comme Category::All();

Voici ce que je ne comprends pas: Dois-je créer un nouveau modèle pour chaque table de ma base de données? Dans ce cas, je finirai avec un tas de fichiers dans mon dossier de modèles avec des noms comme resource1.php, resource2.php, etc, chacun contenant juste le même code que ci-dessus (en remplaçant le nom de la classe).

Est-ce que je ne peux pas simplement faire un modèle appelé, par exemple, "database_handler.php" et ensuite y mettre toutes ces classes au même endroit?


Oui, vous pouvez créer un fichier database_handler.php et faire:

<?php

    Class Category extends Eloquent { }
    Class Post extends Eloquent { }
    Class Client extends Eloquent { }

Vous pouvez faire tout ce que PHP vous permet de faire, et ajouter plusieurs classes à un seul fichier .php est quelque chose que vous pouvez faire. Mais ce n'est pas une bonne pratique et Laravel est tout au sujet de développer l'application en utilisant les meilleurs.

Pour charger ce fichier automatiquement, vous pouvez faire l'une des nombreuses choses suivantes:

1) Ajoutez ce fichier dans votre dossier app / models.

2) Ajoutez-y une entrée sur votre composer.json:

"autoload": {
    "files": [
        "app/database_handler.php"
    ]
},

Et alors vous devrez

composer dump-autoload -o

3) Créez un dossier différent pour celui-ci et ajoutez-le à la section composer json autoload.

Vous choisissez, Laravel vous laissera libre de faire ce que vous voulez.





laravel-4