Laravel і Eloquent дапамагаюць паскорыць распрацоўку прыкладанняў і платформы, забяспечваючы адэкватнае рашэнне большасці праблем. Патрабаванні вырашаюцца з дапамогай больш хуткай распрацоўкі, а таксама добра арганізаванага, шматразовага выкарыстання, абслугоўвання і маштабавання кода.
Распрацоўшчыкі могуць працаваць у Eloquent
з некалькімі базамі дадзеных, эфектыўна выкарыстоўваючы рэалізацыю ActiveMethod. Гэта архітэктурны шаблон, дзе мадэль, створаная ў структуры Model-View-Controller (MVC), адпавядае табліцы ў базе даных. Перавага заключаецца ў тым, што мадэлі выконваюць агульныя аперацыі з базамі дадзеных без кадавання доўгіх запытаў SQL. Шаблоны дазваляюць запытваць даныя ў табліцах і ўстаўляць новыя запісы ў табліцы. Працэс сінхранізацыі некалькіх баз дадзеных, якія працуюць у розных сістэмах, спрошчаны. Вам не трэба пісаць SQL-запыты. Усё, што вам трэба зрабіць, гэта defiСкончыце табліцы базы дадзеных і адносіны паміж імі, а Eloquent зробіць астатнюю працу.
Ацэнка карыснасці Eloquent ORM і разуменне экасістэмы з'яўляюцца абавязковымі. Крокі для пачатку:
migration
з дапамогай кансолі Artisan
eloquent
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
Гэта прывядзе да адмены ўсіх вашых пераносаў.
Eloquent
Пасля завяршэння міграцыі базы дадзеных наступны працэс seeding
. Eloquent
уступае ў гульню, так як 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 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
У мінулы панядзелак Financial Times абвясціла аб здзелцы з OpenAI. FT ліцэнзуе сваю журналістыку сусветнага ўзроўню...
Мільёны людзей плацяць за струменевыя паслугі, плацячы штомесячную абаненцкую плату. Распаўсюджана меркаванне, што вы…
Coveware ад Veeam працягне прадастаўляць паслугі рэагавання на інцыдэнты кібервымагальніцтва. Coveware будзе прапаноўваць судова-медыцынскую экспертызу і магчымасці выпраўлення…
Прагнастычнае тэхнічнае абслугоўванне рэвалюцыянізуе нафтагазавы сектар з інавацыйным і актыўным падыходам да кіравання заводам.…