Статті

Що таке Laravel Eloquent, як ним користуватися, посібник із прикладами

Інфраструктура Laravel PHP містить Eloquent Object Relational Mapper (ORM), який забезпечує надзвичайно простий спосіб спілкування з базою даних. 

Laravel і Eloquent допомагають прискорити розробку додатків і платформ, надаючи адекватне рішення більшості проблем. Вимоги задовольняються за допомогою швидшої розробки, а також добре організованого коду, який можна багаторазово використовувати, підтримувати та масштабувати. 

Як працює Eloquent

Розробники можуть працювати в Eloquent з кількома базами даних, ефективно використовуючи реалізацію ActiveMethod. Це архітектурний шаблон, де модель, створена в структурі Model-View-Controller (MVC), відповідає таблиці в базі даних. Перевага полягає в тому, що моделі виконують звичайні операції з базою даних без кодування довгих запитів SQL. Шаблони дозволяють запитувати дані в таблицях і вставляти нові записи в таблиці. Спрощується процес синхронізації кількох баз даних, що працюють на різних системах. Вам не потрібно писати запити SQL. Все, що вам потрібно зробити, це defiЗавершіть таблиці бази даних і зв’язки між ними, а Eloquent зробить решту роботи.

Підготовка Laravel

Оцінка користі Eloquent ORM і розуміння екосистеми є обов’язковими. Кроки для початку:

  1. Установіть Laravel з getcomposer.org, щоб зробити це, дотримуючись інструкцій тут
  2. створення migration за допомогою консолі Artisan
  3. Створення шаблонів eloquent
  4. бігти я seed бази даних

Artisan Console це назва інтерфейсу командного рядка, включеного в Laravel. Надає набір корисних команд для використання під час розробки програми. Він керується потужним компонентом Symfony Console.

Щоб переглянути список усіх доступних команд Artisan, ви можете скористатися командою list:

php artisan list

Усі команди супроводжуються коротким описом своїх аргументів і параметрів. Це показано на екрані «довідки». Щоб відобразити екран довідки, просто поставте перед назвою команди «help», як показано:

php artisan help migrate

Migration

Міграція — це процес керування базою даних шляхом написання натомість PHP SQL. Надає спосіб додати контроль версій до бази даних. 

Щоб створити міграцію, просто виконайте таку команду:

php artisan make:migration create_student_records

Це створює файл міграції. У текстовому редакторі відкрийте щойно створений файл у папці database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

Код є класом з такою ж назвою 'create student records', і має два методи: вгору та вниз. Метод up повинен вносити зміни в базу даних; тому щоразу, коли ви переносите свою базу даних, будь-який код у методі up буде виконано. З іншого боку, метод down повинен відкотити ці зміни бази даних; тому щоразу, коли ви запускаєте rollback з migration, метод down повинен скасувати те, що зробив метод up. Всередині методу up є конструктор схем, який використовується для створення та керування таблицями. Що станеться, якщо ви скасуєте деякі міграції? Все, що вам потрібно зробити, це виконати таку команду:

php artisan migrate:rollback

І він збере останнє migration яка була реалізована. Крім того, ви можете повністю відновити базу даних, виконавши:

php artisan migrate:reset

Це скасує всі ваші міграції.

Defiції моделей Eloquent

Після завершення міграції бази даних наступним процесом є seedingEloquent вступає в дію з моменту seeding вставляє записи в нашу базу даних. Тому вам потрібно буде створити шаблони перед заповненням бази даних. Кожна таблиця бази даних має відповідну модель, яка використовується для взаємодії з цією таблицею. Шаблони дозволяють запитувати дані у ваших таблицях, а також вставляти нові записи в таблицю. Найпростіший спосіб створити екземпляр моделі — це використати таку команду:

php artisan make:model Student
Приклад шаблону наведено нижче Student, який можна використовувати для отримання та зберігання інформації з таблиці бази даних нашого студента:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Якщо ви створюєте модель і в той же час хочете створити міграцію бази даних, ви можете скористатися цією опцією –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Сівалки

Загальні сівери — це спеціальний набір класів, який дозволяє нам знову і знову заповнювати нашу базу даних абсолютно однаковими даними. Реалізуємо таку команду:

php artisan make:seeder StudentsRecordSeeder

У текстовому редакторі в папці seeds відкрийте щойно створений файл із назвою: StudentsRecordSeeder.php. Як бачите, це просто дуже простий клас з єдиним методом run

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Код — це лише обгортка навколо класу команд консолі, спеціально створена, щоб допомогти у виконанні завдання seeding. Відредагуйте код, а потім збережіть його.

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.
public function run()
{
    echo 'Seeding!';
}

І йдемо до терміналу:

php artisan db:seed --class=StudentsRecordSeeder

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

php artisan db:seed --class=class=StudentsRecordSeeder

Тут ви можете продовжувати видаляти, додавати, змінювати записи в БД, а потім відновлювати їх за допомогою простої команди.

CRUD з Laravel Eloquent

Операції CRUD з об’єктно-реляційним картографом (ORM) Laravel Eloquent спрощують роботу розробників Laravel з кількома базами даних. Він виконує операції створення, читання, оновлення та видалення (CRUD) і зіставляє об’єктні моделі з таблицями бази даних. Обробляє всі взаємодії з базою даних, необхідні для операцій CRUD.

Створення записів

Ви можете використовувати метод ::create, щоб вставити новий запис у базу даних.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

На додаток до простого методу створення, показаного вище, ви також можете створити новий об’єкт і надати йому інші атрибути. Потім ви можете викликати функцію save() і запустити код. Методи, як firstOrCreate() о firstOrNew() інші варіанти створення записів. Це дозволить вам знайти студента з певними атрибутами; якщо цього студента не знайдено, ви створите його в базі даних або створите новий екземпляр.

Читання записів

Використовуючи Eloquent ORM, ви можете знайти записи у своїй базі даних. Запити створені просто та пропонують плавний потік. Щоб створити заяви:where, ви будете використовувати методи get() І first(). Метод first() поверне лише один запис, а метод get() поверне циклічний масив записів. Крім того, метод find() можна використовувати з масивом первинних ключів, який повертатиме колекцію відповідних записів. Ось кілька прикладів:

$student = Students::all();

Цей код отримують усі учні. Хоча наступний код знаходить конкретного студента за ідентифікатором:

$student = Students::find(1);

Також, як показано нижче, код описує пошук студента за певним атрибутом.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Для методу get() цей код показує, як знайти студента з рівнем вище 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Оновлення запису

Оновлювати записи за допомогою Eloquent так само просто. Щоб оновити запис, просто знайдіть запис, який потрібно оновити, відредагуйте атрибути та збережіть. Наприклад, щоб змінити рівень оцінки учня Джона Доу на 5, спочатку знайдіть учня, а потім виконайте метод збереження.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Метод збереження також можна використовувати для оновлення моделей, які вже існують у базі даних.

Видалити записи

Eloquent може похвалитися своїм легким процесом оновлення записів, але така ж історія з видаленням. Є два варіанти: витягнути записи та виконати метод видалення або просто використати метод знищення. Щоб знайти та видалити запис, просто виконайте такі команди:

$student = Students::find(1);
$student->delete();

Щоб видалити запис і кілька записів, виконуються команди:

Students::destroy(1);
Students::destroy(1, 2, 3);

Зауважте, що параметри delete є лише первинними ключами, на відміну від методу delete, який може приймати будь-який стовпець бази даних.

Щоб знайти та видалити всіх учнів вище 10 рівня.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.
Ключові слова: рамкиLaravelMvcPHP

Останні статті

Ринок Smart Lock: опубліковано звіт про дослідження ринку

Термін Smart Lock Market стосується галузі та екосистеми, що оточує виробництво, розповсюдження та використання…

27 березня 2024

Що таке шаблони проектування: навіщо їх використовувати, класифікація, плюси і мінуси

У розробці програмного забезпечення шаблони проектування є оптимальним вирішенням проблем, які зазвичай виникають під час проектування програмного забезпечення. Мені подобається…

26 березня 2024

Технологічний розвиток промислового маркування

Промислове маркування — це широкий термін, який охоплює кілька методів, які використовуються для створення стійких позначок на поверхні…

25 березня 2024

Приклади макросів Excel, написаних за допомогою VBA

Наступні прості приклади макросів Excel були написані за допомогою VBA Приблизний час читання: 3 хвилини Приклад…

25 березня 2024

Читайте Innovation своєю мовою

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.

Слідуйте за нами