2017 © Pedro Peláez
 

library eloquent-model-generator-for-lumen

Eloquent Model Generator, forked from asamaru7/eloquent-model-generator

image

itm2018/eloquent-model-generator-for-lumen

Eloquent Model Generator, forked from asamaru7/eloquent-model-generator

  • Friday, May 11, 2018
  • by itm2018
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 41 Forks
  • 0 Open issues
  • 10 Versions
  • 33 % Grown

The README.md

Eloquent Model Generator for lumen version > 5.6

Eloquent Model Generator is a tool based on Code Generator for generating Eloquent models., (*1)

Installation

Step 1. Add Eloquent Model Generator to your project:, (*2)

composer require itm2018/eloquent-model-generator-for-lumen --dev

Step 2. Register GeneratorServiceProvider:, (*3)

'providers' => [
    // ...
    Krlove\EloquentModelGenerator\Provider\GeneratorServiceProvider::class,
];

Step 3. Configure your database connection., (*4)

Usage

Use, (*5)

php artisan krlove:generate:model User

to generate a model class. Generator will look for table with name users and generate a model for it. You can specify another table name by supplying table-name option:, (*6)

php artisan krlove:generate:model User --table-name=user

In this case generated model will contain protected $table = 'user' property., (*7)

Generated file will be saved into app directory of your application and have App namespace. If you want to change the destination and namespace, supply the output-path and namespace options respectively:, (*8)

php artisan krlove:generate:model User --output-path=/full/path/to/output/directory --namespace=Some\\Other\\NSpace

By default generated class will be extended from Illuminate\Database\Eloquent\Model. To change the base class specify base-class-name option:, (*9)

php artisan krlove:generate:model User --base-class-name=Some\\Other\\Base\\Model

There are several useful options for defining several model's properties: - no-timestamps - adds public $timestamps = false; property to the model - date-format - specifies dateFormat property of the model - connection - specifies connection name property of the model, (*10)

Instead of spcifying options each time when executing the command you can create a config file with your own default values and pass it by specifying config option. Generator already contains its own config file at Resources/config.php:, (*11)

<?php

return [
    'namespace'       => 'App',
    'base_class_name' => \Illuminate\Database\Eloquent\Model::class,
    'output_path'     => null,
    'no_timestamps'   => null,
    'date_format'     => null,
    'connection'      => null,
];

Its values can be overrided by your own config (e.g. <your-base-dir>/config/eloquent_model_generator.php):, (*12)

<?php

return [
    'namespace'       => 'Some\\Other\\Namespace',
    'base_class_name' => 'Some\\Other\\ClassName',
    'output_path'     => '/full/path/to/output/directory',
    'no_timestamps'   => true,
    'date_format'     => 'U',
    'connection'      => 'other-connection',
];

``` php artisan krlove:generate:model User --config=/config/eloquent_model_generator.php, (*13)

### Usage example
Table `user`:
```mysql
CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `role_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `role_id` (`role_id`),
  CONSTRAINT `user_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

Command:, (*14)

php artisan krlove:generate:model User  --table-name=user

Result:, (*15)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

/**
 * @property int $id
 * @property int $role_id
 * @property mixed $username
 * @property mixed $email
 * @property Role $role
 * @property Article[] $articles
 * @property Comment[] $comments
 */
class User extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'user';

    /**
     * @var array
     */
    protected $fillable = ['role_id', 'username', 'email'];

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function role()
    {
        return $this->belongsTo('Role');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function articles()
    {
        return $this->hasMany('Article');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function comments()
    {
        return $this->hasMany('Comment');
    }
}

The Versions

11/05 2018

dev-master

9999999-dev

Eloquent Model Generator, forked from asamaru7/eloquent-model-generator

  Sources   Download

MIT

The Requires

 

11/05 2018

1.0.8

1.0.8.0

Eloquent Model Generator, forked from asamaru7/eloquent-model-generator

  Sources   Download

MIT

The Requires

 

11/05 2018

1.0.7

1.0.7.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

20/09 2016

1.0.6

1.0.6.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

26/05 2016

1.0.5

1.0.5.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

20/04 2016

1.0.4

1.0.4.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

20/04 2016

1.0.3

1.0.3.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

20/04 2016

1.0.2

1.0.2.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

20/04 2016

1.0.1

1.0.1.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires

 

03/04 2016

1.0.0

1.0.0.0

Eloquent Model Generator

  Sources   Download

MIT

The Requires