Laravel kaj Eloquent helpas akceli aplikaĵon kaj platforman disvolviĝon, provizante taŭgan solvon al plej multaj problemoj. Postuloj estas traktitaj per pli rapida evoluo, same kiel bone organizita, reuzebla, konservebla kaj skalebla kodo.
Programistoj povas labori en Eloquent
kun multoblaj datumbazoj efike uzante ActiveMethod-efektivigon. Ĝi estas arkitektura ŝablono kie la modelo kreita en la Model-View-Controller (MVC) strukturo egalrilatas al tabelo en la datumbazo. La avantaĝo estas, ke la modeloj plenumas komunajn datumbazajn operaciojn sen kodi longajn SQL-demandojn. Ŝablonoj permesas vin pridemandi datumojn en tabeloj kaj enmeti novajn rekordojn en tabelojn. La procezo de sinkronigado de multoblaj datumbazoj kurantaj sur malsamaj sistemoj estas simpligita. Vi ne bezonas skribi SQL-demandojn. Ĉio, kion vi devas fari, estas defiFinu la datumbazajn tabelojn kaj la rilatojn inter ili, kaj Eloquent faros la reston de la laboro.
Estimi la utilecon de Elokventa ORM, kaj kompreni la ekosistemon estas nepra. Paŝoj por komenci:
migration
uzante la konzolon Artisan
eloquent
seed
de la datumbazoArtisan Console
estas la nomo de la komandlinia interfaco inkluzivita en Laravel. Provizas aron da utilaj komandoj por uzi dum disvolvado de via aplikaĵo. Ĝi estas pelita de la potenca komponanto Symfony Console
.
Por vidi liston de ĉiuj disponeblaj Artisan-komandoj, vi povas uzi la listkomandon:
php artisan list
Ĉiuj komandoj venas kun konciza priskribo de ĝiaj argumentoj kaj opcioj. Ĉi tio montriĝas en ekrano de "helpo". Por montri helpan ekranon, simple antaŭu la komandnomon per "helpo" kiel montrite:
php artisan help migrate
Migration
Migrado estas datumbaza administradprocezo skribante PHP anstataŭe SQL
. Provizas manieron aldoni versiokontrolon al la datumbazo.
Por krei migradon, simple rulu la jenan komandon:
php artisan make:migration create_student_records
Ĉi tio kreas la migradan dosieron. En via tekstredaktilo, malfermu la dosieron, kiun vi ĵus kreis en la dosierujo 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');
}
}
La kodo estas klaso kun la sama nomo 'create student records
', kaj havas du metodojn: supren kaj malsupren. La supren-metodo devus fari ŝanĝojn al la datumbazo; do kiam ajn vi migras vian datumbazon, ajna kodo en la supren-metodo estos ekzekutita. Aliflanke, la malsupren-metodo devus retrorigi tiujn datumbazajn ŝanĝojn; do kiam ajn vi kuras la rollback
el migration
, la malsupren-metodo devus malfari tion, kion faris la supren-metodo. Ene de la metodo up
ekzistas la skemkonstruanto uzata por krei kaj manipuli la tabelojn. Kio okazas se vi nuligas kelkajn el viaj migradoj? Ĉio, kion vi devas fari, estas efektivigi la sekvan komandon:
php artisan migrate:rollback
Kaj li kolektos la lastan migration
kiu estis efektivigita. Ankaŭ, vi povas tute restarigi la datumbazon per funkciado:
php artisan migrate:reset
Ĉi tio nuligos ĉiujn viajn migradojn.
Eloquent
Post kiam la datumbaza migrado estas kompleta, la sekva procezo estas la seeding
. Eloquent
venas en ludo ekde la seeding
enmetas rekordojn en nian datumbazon. Do vi devos krei la ŝablonojn antaŭ ol plenigi la datumbazon. Ĉiu datumbaza tablo havas respondan modelon, kiu estas uzata por interagi kun tiu tablo. Ŝablonoj permesas al vi pridemandi la datumojn en viaj tabeloj, kaj ankaŭ enigi novajn rekordojn en la tabelon. La plej facila maniero por krei la modelon estas uzi la sekvan komandon:
php artisan make:model Student
Ekzemplo de ŝablono estas montrita sube Student
, kiu povas esti uzata por preni kaj konservi informojn de la datumbaza tablo de nia studento:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Kiam vi generas modelon kaj samtempe vi volas generi datumbazan migradon, vi povas uzi la opcion –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Ĝenerale seeders estas speciala aro de klasoj kiuj permesas nin plenigi nian datumbazon denove kaj denove kun la ĝustaj samaj datumoj. Ni efektivigas la jenan komandon:
php artisan make:seeder StudentsRecordSeeder
En la tekstredaktilo, sub la dosierujo de semoj, malfermu la nove kreitan dosieron kun dosiernomo: StudentsRecordSeeder.php
. Kiel vi povas vidi ĉi tio estas nur tre simpla klaso kun ununura metodo nomita run
🇧🇷
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
La kodo estas nur envolvaĵo ĉirkaŭ konzola komandklaso, specife konstruita por helpi kun la tasko de seeding
. Redaktu la kodon kaj poste konservu ĝin.
public function run()
{
echo 'Seeding!';
}
Kaj irante al la terminalo:
php artisan db:seed --class=StudentsRecordSeeder
Nun vi povas plenigi la tabelon per kelkaj enskriboj kaj ruli:
php artisan db:seed --class=class=StudentsRecordSeeder
Ĉi tie vi povas daŭre forigi, aldoni, modifi enirojn en la DB, poste restarigi ilin per simpla komando.
CRUD-operacioj kun Laravel Eloquent objekt-rilata maparilo (ORM) faciligas por Laravel-programistoj labori kun multoblaj datumbazoj. Ĝi elfaras krei, legi, ĝisdatigi kaj forigi (CRUD) operaciojn, kaj mapas objektomodelojn al datumbazaj tabloj. Pritraktas ĉiujn datumbazinteragojn necesajn por CRUD-operacioj.
Vi povas uzi la metodon ::create por enmeti novan rekordon en la datumbazon.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
Krom la simpla krea metodo montrita supre, vi ankaŭ povas krei novan objekton kaj doni al ĝi malsamajn atributojn. Tiam vi povas voki la funkcion save() kaj ruli la kodon. Metodoj kiel firstOrCreate
() aŭ firstOrNew
() estas aliaj ebloj por krei rekordojn. Ĉi tiuj permesos al vi trovi studenton kun certaj atributoj; se tiu studento ne estas trovita, vi aŭ kreos ĝin en la datumbazo aŭ kreos novan kazon.
Uzante Eloquent ORM, vi povas trovi rekordojn en via datumbazo. La demandoj estas simple konstruitaj kaj ofertas glatan fluon. Por krei deklarojn::where
, vi uzos la metodojn get
() Kaj first
(). La metodo first
() nur redonos unu rekordon, dum la metodo get
() resendos loopeblan tabelon de registroj. Ankaŭ, la metodo find
() povas esti uzata kun tabelo de primaraj ŝlosiloj, kiuj redonos kolekton de kongruaj rekordoj. Jen kelkaj ekzemploj:
$student = Students::all();
Ĉi tiu kodo ricevas ĉiujn studentojn. Dum la sekva kodo trovas specifan studenton per ID:
$studento = Studentoj::trovi(1);
Ankaŭ, kiel montrite sube, la kodo priskribas serĉadon de studento surbaze de specifa atributo.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
Por la get() metodo, ĉi tiu kodo montras kiel trovi studenton kun nivelo super 5.
$rankStudents = Student::where('student_rank', '>', 5)->get();
Ĝisdatigi rekordojn uzante Eloquent estas same facila. Por ĝisdatigi rekordon, simple trovu la rekordon, kiun vi volas ĝisdatigi, redaktu la atributojn kaj konservu. Ekzemple, por ŝanĝi la gradan nivelon de la studento de John Doe al 5, unue trovu la studenton kaj poste plenumu la konservan metodon.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
La konserva metodo ankaŭ povas esti uzata por ĝisdatigi modelojn, kiuj jam ekzistas en la datumbazo.
Elokvento fanfaronas pri sia facila rekorda ĝisdatiga procezo, sed ĝi havas la saman historion kun forigo. Estas du ebloj: eltiri rekordojn kaj ekzekuti la forigitan metodon, aŭ simple uzi la detruan metodon. Por trovi kaj forigi rekordon, simple rulu la jenajn komandojn:
$student = Students::find(1);
$student->delete();
Por forigi rekordon kaj plurajn rekordojn, la komandoj estas rulitaj:
Students::destroy(1);
Students::destroy(1, 2, 3);
Notu, ke la parametroj de detruo estas nur ĉefaj ŝlosiloj male al la metodo de forigo, kiu povas akcepti ajnan datumbazan kolumnon.
Por trovi kaj forigi ĉiujn studentojn super la nivelo 10.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Pasintlunde, la Financial Times anoncis interkonsenton kun OpenAI. FT licencas sian mondklasan ĵurnalismon...
Milionoj da homoj pagas por streaming-servoj, pagante monatajn abonkotizojn. Estas komuna opinio, ke vi...
Coveware de Veeam daŭre liveros servojn de respondaj incidentoj pri ciberĉantaĝo. Coveware ofertos krimmedicinajn kaj solvajn kapablojn...
Prognoza prizorgado revolucias la petrolon kaj gasan sektoron, kun noviga kaj iniciatema aliro al plantadministrado...