Artikoloj

Kio estas Laravel Eloquent, kiel uzi ĝin, lernilo kun ekzemploj

La Laravel PHP-kadro inkluzivas Eloquent Object Relational Mapper (ORM), kiu provizas ekstreme facilan manieron komuniki kun datumbazo. 

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. 

Kiel Elokvento funkcias

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.

Laravel-preparo

Estimi la utilecon de Elokventa ORM, kaj kompreni la ekosistemon estas nepra. Paŝoj por komenci:

  1. Instalu Laravel de getcomposer.org, por fari tion sekvu la instrukciojn ĉi tie
  2. Krei migration uzante la konzolon Artisan
  3. Krei ŝablonojn eloquent
  4. kuri i seed de la datumbazo

Artisan 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.

Defikoncepto de modeloj Eloquent

Post kiam la datumbaza migrado estas kompleta, la sekva procezo estas la seedingEloquent 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

Semantoj

Ĝ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.

Informilo pri novigo
Ne maltrafu la plej gravajn novaĵojn pri novigado. Registriĝi por ricevi ilin retpoŝte.
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 kun Laravel Eloquent

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.

Kreado de rekordoj

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.

Legante rekordojn

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();
Rekorda ĝisdatigo

Ĝ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.

Forigi rekordojn

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
Informilo pri novigo
Ne maltrafu la plej gravajn novaĵojn pri novigado. Registriĝi por ricevi ilin retpoŝte.

Lastaj artikoloj

Eldonistoj kaj OpenAI subskribas interkonsentojn por reguligi la fluon de informoj prilaboritaj de Artefarita Inteligenteco

Pasintlunde, la Financial Times anoncis interkonsenton kun OpenAI. FT licencas sian mondklasan ĵurnalismon...

30 aprilo 2024

Interretaj Pagoj: Jen Kiel Fluaj Servoj Faras Vin Pagi Eterne

Milionoj da homoj pagas por streaming-servoj, pagante monatajn abonkotizojn. Estas komuna opinio, ke vi...

29 aprilo 2024

Veeam havas la plej ampleksan subtenon por ransomware, de protekto ĝis respondo kaj reakiro

Coveware de Veeam daŭre liveros servojn de respondaj incidentoj pri ciberĉantaĝo. Coveware ofertos krimmedicinajn kaj solvajn kapablojn...

23 aprilo 2024

Verda kaj Cifereca Revolucio: Kiel Prognoza Prizorgado Transformas la Petrolo kaj Gasa Industrio

Prognoza prizorgado revolucias la petrolon kaj gasan sektoron, kun noviga kaj iniciatema aliro al plantadministrado...

22 aprilo 2024