Генерация модели по схеме таблицы БД в Laravel 5.2

Категория: Laravel

Как сгенерировать модель Laravel 5 по существующей таблице БД.

Установка пакета:

composer require krlove/eloquent-model-generator --dev

Регистрация сервис-провайдера в секции providers файла config/app.php:

Krlove\EloquentModelGenerator\Provider\GeneratorServiceProvider::class,

Запуск команды генерации модели:

php artisan krlove:generate:model Category --table-name=category --output-path=/var/www/my_project/app/Models --namespace=App\\Models

Пример сгенерированной модели:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * @property int $id
 * @property int $parent_id
 * @property mixed $name
 * @property mixed $path
 * @property Category $category
 * @property Note[] $notes
 */
class Category extends Model
{
    /**
     * The table associated with the model.
     * 
     * @var string
     */
    protected $table = 'category';

    /**
     * @var array
     */
    protected $fillable = ['parent_id', 'name', 'path'];

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function category()
    {
        return $this->belongsTo('Category', 'parent_id');
    }

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

Другой пример генерации модели с наследованием собственного базового класса:

php artisan krlove:generate:model Note --table-name=note --output-path=/home/stas/www/my/pad/reader_laravel5/app/Models --namespace=App\\Models --base-class-name=App\\Models\\BaseModel

Походу дела нашел еще генератор но не проверял: https://github.com/jimbolino/laravel-model-builder/

#reverse engineer, #laravel model builder

категория: Laravel