![Скрипт на Эволюцию Брейнрот Без Ключа [АВТО ФАРМ]](https://joyverse.ru/wp-content/uploads/2025/10/image-83-150x150.webp)
Создание простого блога на Laravel 11: Создание моделей, миграций и сидов

В этой статье мы создадим модель для постов, миграцию для таблицы posts
, фабрику и сиды с тестовыми данными.
Создание модели и миграции
Выполним команду для создания модели Post
с миграцией:
php artisan make:model Post -m
Эта команда создаст:
- Модель
Post
в папкеapp/Models/
. - Миграцию для таблицы
posts
в папкеdatabase/migrations/
.
Теперь откроем файл миграции (2025_01_06_000000_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(); // ID поста
$table->string('title'); // Заголовок поста
$table->text('content'); // Содержимое поста
$table->string('author')->default('Guest'); // Автор поста
$table->timestamps(); // created_at и updated_at
});
}
public function down(): void
{
Schema::dropIfExists('posts');
}
};
Сохраняем файл и выполняем миграцию:
php artisan migrate
Теперь таблица posts
создана в вашей базе данных.
Добавление фабрик для генерации тестовых данных
Laravel предоставляет инструмент для генерации тестовых данных — Factories.
Создаем фабрику для модели Post
:
php artisan make:factory PostFactory --model=Post
Фабрика будет находиться в database/factories/PostFactory.php
. Обновим её следующим образом:
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
class PostFactory extends Factory
{
protected $model = Post::class;
public function definition(): array
{
return [
'title' => $this->faker->sentence, // Генерация случайного заголовка
'content' => $this->faker->paragraph(5), // Случайное содержимое
'author' => $this->faker->name, // Имя автора
];
}
}
Фабрика теперь генерирует случайные значения для заголовка, содержимого и имени автора.
Создание сидов для заполнения базы данных
Сиды (seeds) нужны для заполнения базы данных тестовыми данными. Создаем сид:
php artisan make:seeder PostSeeder
Откроем database/seeders/PostSeeder.php
и наполним его кодом:
use App\Models\Post;
use Illuminate\Database\Seeder;
class PostSeeder extends Seeder
{
public function run(): void
{
Post::factory(10)->create(); // Создаем 10 тестовых записей
}
}
Теперь добавим вызов PostSeeder
в основной сидер DatabaseSeeder
:
Откроем файл database/seeders/DatabaseSeeder.php
и обновим его:
class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call(PostSeeder::class); // Запуск PostSeeder
}
}
Заполняем базу данных:
php artisan db:seed
Теперь в таблице posts появится 10 записей с тестовыми данными.
Проверяем данные в базе
С помощью Tinker
Откройте Tinker для работы с данными:
php artisan tinker
Выполните команду для проверки данных:
Post::all();
Вы увидите список созданных записей.
С помощью MySQL Workbench


Итоговый код
Миграция:
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->string('author')->default('Guest');
$table->timestamps();
});
Фабрика:
return [
'title' => $this->faker->sentence,
'content' => $this->faker->paragraph(5),
'author' => $this->faker->name,
];
Сидер:
Post::factory(10)->create();
Следующие шаги
В следующий статье мы создадим контроллер и CRUD-операции для управления постами.