Package Data | |
---|---|
Maintainer Username: | axn |
Maintainer Contact: | developpement@axn.fr (AXN Informatique) |
Package Create Date: | 2016-11-02 |
Package Last Update: | 2024-06-26 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-19 03:24:33 |
Package Statistics | |
---|---|
Total Downloads: | 11,592 |
Monthly Downloads: | 284 |
Daily Downloads: | 9 |
Total Stars: | 23 |
Total Watchers: | 3 |
Total Forks: | 2 |
Total Open Issues: | 1 |
Ce package permet de générer les modèles et relations Eloquent à partir de la base de données.
Depuis la version 5, les relations sont générées dans des traits séparés (voir config).
Install the package with Composer:
composer require axn/laravel-models-generator
In Laravel 5.5 the service provider will automatically get registered.
In older versions of the framework just add the service provider
to the array of providers in config/app.php
:
'providers' => [
// ...
Axn\ModelsGenerator\ServiceProvider::class,
],
Publier si besoin la config et les templates (stubs) du package via les commandes :
// config
php artisan vendor:publish --tag=models-generator.config
// stubs
php artisan vendor:publish --tag=models-generator.stubs
La config est publiée dans config/models-generator.php
Les templates sont publiés dans resources/stubs/vendor/models-generator/
Modifier au besoin les options de config et les templates des modèles et relations.
Lancer simplement la commande :
php artisan models:generate
Options :
Autres détails :
Exemple :
// Modèle table "comments"
class Comment extends Model
{
// Relation "belongs to" vers la table "users" via fk "user_id"
public function user() {}
// Relation "belongs to" vers la table "users" via fk "updator_id"
public function updator() {}
}
// Modèle table "users"
class User extends Model
{
// Relation "has many" vers la table "comments" via fk "user_id"
public function comments() {}
// Relation "has many" vers la table "comments" via fk "updator_id"
public function commentsViaUpdator() {}
}
Il se peut que deux relations aient le même nom dans un même modèle, par exemple s'il y a une relation polymorphique ET une relation "has one or many" vers une même table.
Exemple :
class Staff extends Model
{
// Relation polymorphique vers la table "photos"
// via champs "imageable_type" et "imageable_id"
public function photos()
{
return $this->morhMany('Photo', 'imageable');
}
// Relation "has many" vers la table "photos" via fk "staff_id"
public function photos()
{
return $this->hasMany('Photo', 'staff_id');
}
}
Dans ce cas il faut soit retirer la relation "has many", via l'option de config
ignored_relations
, soit retirer la relation polymorphique qui a été renseignée
dans l'option de config polymorphic_relations
.