Laravel u Eloquent jgħinu biex iħaffu l-iżvilupp tal-applikazzjoni u l-pjattaforma, u jipprovdu soluzzjoni adegwata għall-biċċa l-kbira tal-problemi. Ir-rekwiżiti huma indirizzati bi żvilupp aktar mgħaġġel, kif ukoll kodiċi organizzat tajjeb, li jista 'jerġa' jintuża, li jista' jinżamm u li jista 'jskala.
L-iżviluppaturi jistgħu jaħdmu fih Eloquent
b'databases multipli bl-użu effiċjenti ta 'implimentazzjoni ta' ActiveMethod. Huwa mudell arkitettoniku fejn il-mudell maħluq fl-istruttura Mudell-View-Kontrollur (MVC) jikkorrispondi għal tabella fid-database. Il-vantaġġ huwa li l-mudelli jwettqu operazzjonijiet ta 'database komuni mingħajr ma jikkodifikaw mistoqsijiet SQL twal. Il-mudelli jippermettulek tagħmel mistoqsija tad-dejta fit-tabelli u daħħal rekords ġodda fit-tabelli. Il-proċess ta 'sinkronizzazzjoni ta' databases multipli li jaħdmu fuq sistemi differenti huwa ssimplifikat. M'għandekx bżonn tikteb mistoqsijiet SQL. Kulma għandek tagħmel hu defiLesti t-tabelli tad-database u r-relazzjonijiet bejniethom, u Eloquent jagħmel il-bqija tax-xogħol.
L-apprezzament tal-utilità tal-ORM Eloquent, u l-fehim tal-ekosistema huwa meħtieġ. Passi biex tibda:
migration
bl-użu tal-console Artisan
eloquent
seed
tad-databaseArtisan Console
huwa l-isem tal-interface tal-linja tal-kmand inkluż f'Laravel. Jipprovdi sett ta 'kmandi utli għall-użu waqt l-iżvilupp tal-applikazzjoni. Huwa mmexxi mill-komponent qawwi Symfony Console
.
Biex tara lista tal-kmandi Artiġjani kollha disponibbli, tista' tuża l-kmand tal-lista:
php artisan list
Il-kmandi kollha jiġu b'deskrizzjoni konċiża tal-argumenti u l-għażliet tagħha. Dan jidher fi skrin ta’ “għajnuna”. Biex tara skrin ta' għajnuna, sempliċement qabel l-isem tal-kmand b'"għajnuna" kif muri:
php artisan help migrate
Migration
Il-migrazzjoni hija proċess ta 'ġestjoni tad-database billi tikteb PHP minflok SQL
. Jipprovdi mod biex iżżid il-kontroll tal-verżjoni mad-database.
Biex toħloq migrazzjoni, mexxi l-kmand li ġej:
php artisan make:migration create_student_records
Dan joħloq il-fajl tal-migrazzjoni. Fl-editur tat-test tiegħek, iftaħ il-fajl li għadek kif ħoloq fil-folder 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');
}
}
Il-kodiċi huwa klassi bl-istess isem'create student records
', u għandha żewġ metodi: 'l fuq u' l isfel. Il-metodu up għandu jagħmel bidliet fid-database; għalhekk kull darba li temigra d-database tiegħek, kwalunkwe kodiċi fil-metodu up jiġi esegwit. Min-naħa l-oħra, il-metodu down għandu jreġġa' lura dawk il-bidliet fid-database; hekk kull darba li tmexxi l rollback
ta ' migration
, il-metodu 'l isfel għandu jneħħi dak li għamel il-metodu 'l fuq. Ġewwa l-metodu up
hemm il-bennej schema użat biex jinħolqu u jimmanipulaw it-tabelli. X'jiġri jekk tikkanċella xi wħud mill-migrazzjoni tiegħek? Kull ma trid tagħmel hu li timplimenta l-kmand li ġej:
php artisan migrate:rollback
U se jirtira l-aħħar wieħed migration
li ġie implimentat. Barra minn hekk, tista’ tirrestawra kompletament id-database billi tħaddem:
php artisan migrate:reset
Dan se jikkanċella l-migrazzjoni kollha tiegħek.
Eloquent
Ladarba l-migrazzjoni tad-database tkun kompluta, il-proċess li jmiss huwa l- seeding
. Eloquent
jidħol fis-seħħ peress li l seeding
hija l-inserzjoni ta' rekords fid-database tagħna. Allura ser ikollok bżonn toħloq il-mudelli qabel timla d-database. Kull tabella tad-database għandha mudell korrispondenti li jintuża biex jinteraġixxi ma' dik it-tabella. Il-mudelli jippermettulek tagħmel mistoqsija dwar id-dejta fit-tabelli tiegħek, kif ukoll iddaħħal rekords ġodda fit-tabella. L-eħfef mod biex tistjanzja l-mudell huwa li tuża l-kmand li ġej:
php artisan make:model Student
Mudell eżempju jidher hawn taħt Student
, li tista' tintuża biex tirkupra u tinħażen informazzjoni mit-tabella tad-database tal-istudenti tagħna:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Meta tiġġenera mudell u fl-istess ħin trid tiġġenera migrazzjoni tad-database, tista 'tuża l-għażla –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Is-seeders ġenerali huma sett speċjali ta' klassijiet li jippermettulna timla d-database tagħna għal darb'oħra bl-istess data eżatta. Aħna nimplimentaw il-kmand li ġej:
php artisan make:seeder StudentsRecordSeeder
Fl-editur tat-test, taħt il-folder taż-żrieragħ, iftaħ il-fajl maħluq ġdid bl-isem tal-fajl: StudentsRecordSeeder.php
. Kif tistgħu taraw, din hija biss klassi sempliċi ħafna b'metodu wieħed imsejjaħ run
()
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
Il-kodiċi huwa biss tgeżwir madwar klassi ta 'kmand tal-console, maħluqa speċifikament biex tgħin fil-kompitu ta' seeding
. Editja l-kodiċi u mbagħad issalvah.
public function run()
{
echo 'Seeding!';
}
U tmur fit-terminal:
php artisan db:seed --class=StudentsRecordSeeder
Issa tista' timla t-tabella b'xi entrati u tmexxi:
php artisan db:seed --class=class=StudentsRecordSeeder
Hawnhekk tista 'tkompli tħassar, iżżid, timmodifika l-entrati fid-DB, imbagħad tirrestawrahom bi kmand sempliċi.
L-operazzjonijiet CRUD b'Laravel Eloquent object-relational mapper (ORM) jagħmluha aktar faċli għall-iżviluppaturi ta' Laravel biex jaħdmu ma' databases multipli. Iwettaq operazzjonijiet ta' ħolqien, taqra, taġġorna u ħassar (CRUD), kif ukoll jimmappa mudelli ta' oġġetti għal tabelli ta' database. Jiġġestixxi l-interazzjonijiet tad-database kollha meħtieġa għall-operazzjonijiet CRUD.
Tista' tuża l-metodu ::create biex daħħal rekord ġdid fid-database.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
Minbarra l-metodu ta 'ħolqien sempliċi muri hawn fuq, tista' wkoll toħloq oġġett ġdid u tassenjalu attributi differenti. Imbagħad, tista 'ssejjaħ il-funzjoni save() u tħaddem il-kodiċi. Metodi simili firstOrCreate
() jew firstOrNew
() huma għażliet oħra għall-ħolqien ta' rekords. Dawn jippermettulek issib student b'ċerti attributi; jekk dak l-istudent ma jinstabx, int se toħloqha fid-database jew tagħti istanzija ta' istanza ġdida.
Bl-użu ta 'Eloquent ORM, tista' ssib rekords fid-database tiegħek. Il-mistoqsijiet huma mibnija b'mod sempliċi u joffru fluss bla xkiel. Biex toħloq struzzjonijiet ::where
, se tuża l-metodi get
() U first
(). Il-metodu first
() se jirritorna rekord wieħed biss, filwaqt li l- get
() se jirritorna firxa ta 'rekords li jistgħu jiġu loop fuq. Barra minn hekk, il-metodu find
() jista 'jintuża ma' firxa ta 'ċwievet primarji, li se jirritorna ġabra ta' rekords li jaqblu. Hawn huma xi eżempji:
$student = Students::all();
Dan il-kodiċi jġib l-istudenti kollha. Filwaqt li l-kodiċi li ġej isib student speċifiku bl-ID:
$student = Students::find(1);
Barra minn hekk, kif muri hawn taħt, il-kodiċi jiddeskrivi t-tfittxija ta’ student ibbażata fuq attribut speċifiku.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
Għall-metodu get(), dan il-kodiċi juri kif issib student b'livell ogħla minn 5.
$rankStudents = Student::where('student_rank', '>', 5)->get();
L-aġġornament tar-rekords bl-użu ta 'Eloquent huwa daqstant sempliċi. Biex taġġorna rekord, sempliċement issib ir-rekord li trid taġġorna, editja l-attributi, u ssejvja. Pereżempju, biex tbiddel il-livell tal-grad tal-istudent ta' John Doe għal 5, l-ewwel sib l-istudent u mbagħad ħaddem il-metodu ta' salvataġġ.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
Il-metodu ta' salvataġġ jista' jintuża wkoll biex taġġorna mudelli li diġà jeżistu fid-database.
Eloquent tiftaħar il-proċess faċli tiegħu ta 'aġġornament tar-rekords, iżda għandu l-istess storja bit-tħassir. Hemm żewġ għażliet: rekord pull-out u tesegwixxi l-metodu tat-tħassir, jew sempliċement tuża l-metodu jeqirdu. Biex issib u tħassar rekord, sempliċement ħaddem il-kmandi li ġejjin:
$student = Students::find(1);
$student->delete();
Biex tħassar rekord u rekords multipli, il-kmandi jiġu esegwiti:
Students::destroy(1);
Students::destroy(1, 2, 3);
Innota li l-parametri jeqirdu huma biss ċwievet primarji b'differenza mill-metodu tat-tħassir li jista 'jaċċetta kwalunkwe kolonna tad-database.
Biex issib u tħassar l-istudenti kollha b'livell ogħla minn 10.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
It-Tnejn li għadda, il-Financial Times ħabbret ftehim mal-OpenAI. FT tagħti liċenzja għall-ġurnaliżmu ta’ klassi dinjija tagħha...
Miljuni ta 'nies iħallsu għal servizzi ta' streaming, iħallsu miżati ta 'abbonament ta' kull xahar. Hija opinjoni komuni li inti...
Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...
Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...