Модель вместе с миграцией в Laravel
Модель Eloquent работает с таблицей
в базе данных. Чтобы таблица появилась,
нужна миграция: файл, который описывает
структуру и применяется командой
migrate. Обычно модель и миграцию
создают по отдельности - двумя командами
Artisan.
На практике удобнее сделать оба файла
за один раз. Так меньше шанс забыть
миграцию или назвать таблицу иначе,
чем ожидает модель. Для этого у
make:model есть флаг -m.
Как устроены миграции, как задавать колонки и запускать их на базе, разобрано в разделе «Миграции». Здесь мы только свяжем создание модели с заготовкой миграции одной командой.
Создадим модель Post вместе
с миграцией:
php artisan make:model Post -m
Появится класс модели в app/Models/Post.php
и файл миграции в database/migrations/.
Имя миграции фреймворк подберёт сам -
обычно create_posts_table,
по имени модели во множественном числе.
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('posts');
}
};
?>
В миграции пока только id
и timestamps - как при обычном
make:migration. Колонки добавляют
вручную, затем выполняют
php artisan migrate.
После этого модель уже может работать
с таблицей posts.
С помощью Artisan сгенерируйте модель
City вместе с миграцией.
Откройте созданный файл миграции
и посмотрите, какое имя таблицы
в нём указано.