Работа с базами данных в Laravel: Полное руководство. Введение для Junior разработчиков

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Laravel - это фреймворк PHP, который позволяет легко и эффективно работать с базами данных. Он предоставляет множество инструментов и функций для создания, управления и масштабирования баз данных. В этой статье мы рассмотрим основные аспекты работы с базами данных в Laravel, включая миграции, модели, фабрики и сиды.

Основы баз данных в Laravel

Прежде чем начать, давайте поговорим о базах данных и их роли в веб-разработке. База данных - это структурированное хранилище данных, которое используется для хранения, организации и управления информацией. В веб-разработке базы данных часто используются для сохранения пользовательских данных, а также данных, необходимых для функционирования приложений.

Laravel поддерживает несколько систем управления базами данных, включая MySQL, PostgreSQL, SQLite и другие. Вы можете выбрать подходящую систему в зависимости от требований вашего проекта.

Миграции

Миграции - это способ определения структуры базы данных с использованием кода. Вместо того, чтобы создавать таблицы и изменять структуру базы данных вручную, вы можете использовать миграции для автоматизации этого процесса. Миграции позволяют вам создавать и изменять таблицы с помощью кода, что делает процесс управления базой данных более контролируемым и поддерживаемым.

Создание миграции

Для создания новой миграции в Laravel выполните следующую команду Artisan:

php artisan make:migration create_users_table

Это создаст новый файл миграции в папке database/migrations. В этом файле вы можете определить структуру таблицы, добавить столбцы и индексы, а также выполнять другие действия с базой данных.

Пример миграции

Вот пример миграции для создания таблицы пользователей:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Выполнение миграции

После определения миграции вы можете выполнить её, чтобы создать таблицу в базе данных:

php artisan migrate

Эта команда применит все миграции, которые находятся в папке database/migrations, и создаст соответствующие таблицы.

Модели

Модели - это классы, которые отображают таблицы базы данных. Они позволяют вам взаимодействовать с данными в таблицах, используя объектно-ориентированный подход. Модели являются основой для выполнения операций CRUD (Create, Read, Update, Delete) в Laravel.

Создание модели

Для создания новой модели выполните следующую команду Artisan:

php artisan make:model User

Это создаст новый файл модели в папке app/Models. Модели в Laravel обычно наследуются от базового класса Illuminate\Database\Eloquent\Model.

Пример модели

Пример модели для таблицы пользователей:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'email',
        'password',
    ];
}

Использование модели

Теперь вы можете использовать эту модель для выполнения запросов к таблице пользователей:

// Получение всех пользователей
$users = User::all();

// Создание нового пользователя
$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->password = bcrypt('password');
$user->save();

// Поиск пользователя по ID
$user = User::find(1);

// Обновление пользователя
$user->name = 'Updated Name';
$user->save();

// Удаление пользователя
$user->delete();

Модели также позволяют вам определить отношения между таблицами и выполнять более сложные запросы.

Фабрики и сиды

Фабрики и сиды используются для заполнения базы данных фиктивными данными в целях разработки и тестирования. Фабрики позволяют вам создавать фиктивные записи в базе данных, а сиды выполняют фабрики и заполняют базу данных этими данными.

Создание фабрики

Для создания новой фабрики выполните следующую команду Artisan:

php artisan make:factory UserFactory --model=User

Это создаст новый файл фабрики в папке database/factories. В этом файле вы можете определить, какие данные будут генерироваться для фиктивных записей.

Пример фабрики

Пример фабрики для модели User:

use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\User;

class UserFactory extends Factory
{
    protected $model = User::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'email' => $this->faker->unique()->safeEmail,
            'password' => bcrypt('password'),
        ];
    }
}

Создание сида

Для создания нового сида выполните следующую команду Artisan:

php artisan make:seeder UsersTableSeeder

Это создаст новый файл сида в папке database/seeders. В этом файле вы можете указать, какие фабрики использовать и сколько фиктивных записей создать.

Пример сида

Пример сида для заполнения таблицы пользователей данными:

use Illuminate\Database\Seeder;
use App\Models\User;

class UsersTableSeeder extends Seeder
{
    public function run()
    {
        User::factory()->count(10)->create();
    }
}

Выполнение сида

Чтобы выполнить сид и заполнить базу данных данными, используйте следующую команду:

php artisan db:seed --class=UsersTableSeeder

Это создаст 10 фиктивных пользователей в таблице пользователей.

Заключение

Laravel предоставляет множество удобных инструментов для работы с базами данных, включая миграции, модели, фабрики и сиды. Эти инструменты позволяют разработчикам создавать и управлять базами данных в приложениях легко и эффективно.

При работе с Laravel, вы можете быть уверены, что ваша база данных будет хорошо организована, легко масштабируема и готова к развитию вашего проекта.

Теперь вы обладаете фундаментальными знаниями о работе с базами данных в Laravel и готовы создавать мощные веб-приложения с учетом всех преимуществ этого фреймворка.


Эта статья дает обширное представление о базах данных, миграциях, моделях, фабриках и сидах в Laravel. Вы можете использовать эту информацию для успешной разработки ваших проектов на этом мощном фреймворке.

Источник: https://habr.com/ru/articles/763742/


Интересные статьи

Интересные статьи

Привет, дорогие читатели! Я сегодня хочу поговорить о важной теме для всех, кто работает с базами данных. Это проектирование реляционных баз данных. Кажется, что звучит ужасно скучно, да? Но на самом ...
Умение работать в команде — один из самых востребованных навыков в разработке и не только. Без него не получится эффективно взаимодействовать с коллегами и достигать рабочих целей. Пару лет назад рекр...
Я всегда задумывалась о том, чтобы сделать место в котором нахожусь - лучше. Именно это мной движет и по сей день.Комитет по научной работе СС СПБГУТ существует с 2015 года и вопрос взаимодействия с к...
Фильтр Калмана является одним из самых популярных алгоритмов фильтрации. Он широко распространен в машинном обучении, навигационных системах, автопилотируемых устройствах...
Первого июня состоялись финалы нашего чемпионата по программированию. Имена победителей уже известны. В скором времени они получат свои награды, а мы тем временем начинаем публиковать разборы зад...