Артыкулы

Што такое 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. запусціць i 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 будзе выкананы. З іншага боку, метад ўніз павінен адкаціць гэтыя змены базы дадзеных; таму кожны раз, калі вы запускаеце 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 з Laravel Eloquent object-relational mapper (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 гэтак жа проста. Каб абнавіць запіс, проста знайдзіце запіс, які хочаце абнавіць, адрэдагуйце атрыбуты і захавайце. Напрыклад, каб змяніць узровень класа вучня Джона Доу на 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
Інавацыйны бюлетэнь
Не прапусціце самыя важныя навіны пра інавацыі. Падпішыцеся, каб атрымліваць іх па электроннай пошце.

Апошнія артыкулы

Выдаўцы і OpenAI падпісваюць пагадненні аб рэгуляванні патоку інфармацыі, апрацаванай штучным інтэлектам

У мінулы панядзелак Financial Times абвясціла аб здзелцы з OpenAI. FT ліцэнзуе сваю журналістыку сусветнага ўзроўню...

Красавік 30 2024

Інтэрнэт-плацяжы: вось як паслугі струменевай перадачы прымушаюць вас плаціць вечна

Мільёны людзей плацяць за струменевыя паслугі, плацячы штомесячную абаненцкую плату. Распаўсюджана меркаванне, што вы…

Красавік 29 2024

Veeam прапануе самую поўную падтрымку праграм-вымагальнікаў - ад абароны да адказу і аднаўлення

Coveware ад Veeam працягне прадастаўляць паслугі рэагавання на інцыдэнты кібервымагальніцтва. Coveware будзе прапаноўваць судова-медыцынскую экспертызу і магчымасці выпраўлення…

Красавік 23 2024

Зялёная і лічбавая рэвалюцыя: як прагнознае тэхнічнае абслугоўванне трансфармуе нафтагазавую прамысловасць

Прагнастычнае тэхнічнае абслугоўванне рэвалюцыянізуе нафтагазавы сектар з інавацыйным і актыўным падыходам да кіравання заводам.…

Красавік 22 2024

Чытайце Innovation на сваёй мове

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

Выконвайце за намі