2015-09-16 1 views
0

Une commande php artisan existe-t-elle pour créer toute la classe nécessaire à partir d'une base de données? J'ai une base de données remplie de plusieurs tables (exécutées avec MySQL), et je voudrais avoir une abstraction de classe php, ce qui signifie que toutes les procédures triviales (créer, mettre à jour, supprimer, insérer) sont automatiquement créées par ce processus pour chaque classe représentant une table dans ma base de données.Commande PhP Artisan pour créer une classe à partir de la base de données Laravel 5?

Le point est d'être en mesure d'appeler toutes les classes avec la même fonction pour le CRUD:

User->create(); // may return the last id inserted 

Book->update("create_date", "2015-09-09"); 

User->delete(1); // may remove the user with primary key "1" 
Book->delete(410); // may remove the book with primary key "410" 

Ou est-il un plugin compatible Laravel externe existant 5 pour effectuer cette tâche?

Répondre

1

Ce que vous cherchez est la commande make:model.

Par exemple:

php artisan make:model User 

fera un modèle pour votre table utilisateur (les conventions de nommage peuvent tous être remplacés).

Vous devrez exécuter la commande make:model Name pour chaque table individuellement, Artisan ne peut pas faire chacun automatiquement pour vous, mais une fois créé, vous aurez tous les Eloquent methods standard disponible qui vous permettra de create, update, delete, show.

+0

La commande a fonctionné comme un charme, pourtant j'ai une classe vide: 'livre de classe étend le modèle {}'. Sachant que j'ai déjà configuré ma connexion à la base de données dans 'config/database.php'. Est-ce normal ? –

+0

Oui, tout à fait normal. Votre classe '' 'Book''' étend' '' 'Model''' qui lui permet d'hériter des méthodes Eloquent utilisées pour l'interrogation de base de données. Consultez la documentation dans ma réponse pour en savoir plus sur Eloquent. – Amo

0

Vous pouvez utiliser la commande artisan: installer Laracademy Générateurs:

composer require "laracademy/generators" 

Ensuite, ajoutez dans votre Laracademy Générateurs config/app.php fichier:

Laracademy\Generators\GeneratorsServiceProvider::class 

Alternativement, vous pouvez ajouter le fournisseur à votre 'app/Providers/AppServiceProvider.php' si vous souhaitez uniquement utiliser ce fournisseur pour le développement local:

public function register(){ 
if($this->app->environment() == 'local') { 
    $this->app->register('\Laracademy\Generators\GeneratorsServiceProvider'); 
}} 

Maintenant vous avez tout ce dont vous avez besoin pour commencer à utiliser les générateurs Laracademy. Voyons comment l'utiliser et quels sont les disponibles options.If vous vérifiez votre cli Artisan, une nouvelle commande apparaîtra dans la liste:

generate:modelfromtable 

D'abord, vous pouvez passer -Tous drapeau pour dire générateurs Laracademy pour générer modèles pour toutes les tables existent dans votre base de données:

php artisan generate:modelfromtable --all 

espère que cela vous a aidé :)