Членове

Какво е Laravel Eloquent, как да го използвате, урок с примери

PHP рамката на Laravel включва 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

Всички команди идват с кратко описание на своите аргументи и опции. Това се показва в екран "помощ". За да покажете помощен екран, просто предшествайте името на командата с „помощ“, както е показано:

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 метода ще бъде изпълнен. От друга страна, методът надолу трябва да отмени тези промени в базата данни; така че всеки път, когато стартирате rollback на migration, методът надолу трябва да отмени това, което направи методът нагоре. Вътре в метода 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

В текстовия редактор, под папката със семена, отворете новосъздадения файл с име на файл: 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

Тук можете да продължите да изтривате, добавяте, променяте записи в DB, ​​след което да ги възстановявате с проста команда.

CRUD с Laravel Eloquent

CRUD операциите с Laravel Eloquent обектно-релационно картографиране (ORM) улесняват разработчиците на 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();

Този код получава всички ученици. Докато следният код намира конкретен студент по ID:

$студент = Студенти::намери(1);

Освен това, както е показано по-долу, кодът описва търсенето на студент въз основа на конкретен атрибут.

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

За метода get() този код показва как да намерите ученик с ниво над 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Актуализация на записа

Актуализирането на записи с помощта на Eloquent е също толкова лесно. За да актуализирате запис, просто намерете записа, който искате да актуализирате, редактирайте атрибутите и запазете. Например, за да промените нивото на оценка на ученика на John Doe на 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
Иновационен бюлетин
Не пропускайте най-важните новини за иновациите. Регистрирайте се, за да ги получавате по имейл.

Последни статии

Иновативна намеса в добавената реалност с Apple Viewer в поликлиниката в Катания

Операция по офталмопластика с помощта на търговския зрител Apple Vision Pro беше извършена в поликлиниката в Катания...

3 май 2024

Предимствата на страниците за оцветяване за деца - свят на магия за всички възрасти

Развитието на фини двигателни умения чрез оцветяване подготвя децата за по-сложни умения като писане. Оцветявам…

2 май 2024

Бъдещето е тук: Как корабната индустрия революционизира глобалната икономика

Военноморският сектор е истинска световна икономическа сила, която се е насочила към пазар от 150 милиарда...

1 май 2024

Издателите и OpenAI подписват споразумения за регулиране на потока от информация, обработвана от изкуствения интелект

Миналия понеделник Financial Times обяви сделка с OpenAI. FT лицензира своята журналистика от световна класа...

30 април 2024

Прочетете Иновация на вашия език

Иновационен бюлетин
Не пропускайте най-важните новини за иновациите. Регистрирайте се, за да ги получавате по имейл.

Следвайте ни