Laravel Eloquent создание модели
Можно ли программно создавать модели Laravel Eloquent на основе существующих таблиц? Кажется, что для создания каждого в отдельности требуется значительный объем работы.
1 ответ
Решение
Разве это не сложно при программировании с нуля. Но, в любом случае, если вы хотите создать Artisan Command и получить все имена таблиц, чтобы затем выполнить make:model $modelName
в каждом.
так:
1. Создайте свою команду
php artisan make:command GenerateModels
2. Отредактируйте свою команду
App\Console\ Команды \ GenerateModels.php
<?php
namespace App\Console\Commands;
use Illuminate\Support\Str;
// ...
use Illuminate\Support\Facades\Artisan;
// some code
protected $signature = 'generate:models';
// some more code
public function handle()
{
$tables = \DB::select('SHOW TABLES');
$tables = array_map('current',$tables);
collect($tables)->each(function ($model) {
Artisan::call('make:model ' . Str::singular($model));
});
}
}
3. Запустите его
php artisan generate:models