Articles

Chii chinonzi Laravel Eloquent, maitiro ekuishandisa, dzidziso nemienzaniso

Iyo Laravel PHP chimiro inosanganisira Eloquent Object Relational Mapper (ORM), iyo inopa yakanyanya nyore nzira yekutaurirana nedatabase. 

Laravel uye Eloquent inobatsira kukurumidza kushandisa uye kusimudzira kwepuratifomu, ichipa mhinduro yakakwana kumatambudziko mazhinji. Zvinodiwa zvinogadziriswa nekukurumidza kusimudzira, pamwe nekurongeka zvakanaka, kushandiswazve, kuchengetedzwa, uye scalable kodhi. 

Mashandiro Ekutaura

Vagadziri vanogona kushanda mukati Eloquent ine akawanda dhatabhesi zvinobudirira uchishandisa ActiveMethod kuita. Iyo patani yekuvaka iyo modhi yakagadzirwa muModel-View-Controller (MVC) chimiro inoenderana netafura mudura. Chakanakira ndechekuti mamodheru anoita akajairwa dhatabhesi mashandiro pasina kukodha refu SQL mibvunzo. Matemplate anotendera iwe kubvunza data mumatafura uye kuisa zvinyorwa zvitsva mumatafura. Maitiro ekuwiriranisa akawanda dhatabhesi ari kushanda pane akasiyana masisitimu anorerutswa. Iwe haufanire kunyora SQL mibvunzo. Zvaunofanira kuita chete defiPedzisa matafura edatabase uye hukama huri pakati pavo, uye Eloquent achaita basa rose.

Laravel kugadzirira

Kukoshesa kushandiswa kweEloquent ORM, uye kunzwisisa ecosystem ndiyo inofanirwa. Matanho ekutanga:

  1. Isa Laravel kubva getcomposer.org, kuti uite izvi tevera mirairo iri pano
  2. Create migration kushandisa console Artisan
  3. Gadzira matemplate eloquent
  4. mhanya i seed ye database

Artisan Console ndiro zita reiyo command line interface inosanganisirwa muLaravel. Inopa seti yemirairo inobatsira yekushandisa paunenge uchigadzira yako application. Inotungamirirwa nechikamu chine simba Symfony Console.

Kuti uone rondedzero yeese aripo Artisan mirairo, unogona kushandisa iyo rondedzero yekuraira:

php artisan list

Yese mirairo inouya netsanangudzo ipfupi yenharo dzayo uye sarudzo. Izvi zvinoratidzwa mu "rubatsiro" skrini. Kuti uratidze skrini yekubatsira, ingofanotungamira zita rekuraira ne "rubatsiro" sezvakaratidzwa:

php artisan help migrate

Migration

Kutama idhizaini manejimendi maitiro nekunyora PHP pachinzvimbo SQL. Inopa nzira yekuwedzera shanduro yekutonga kune database. 

Kuti ugadzire kutama, ingomhanya unotevera kuraira:

php artisan make:migration create_student_records

Izvi zvinogadzira iyo migration file. Mune yako mameseji edhita, vhura iyo faira yauchangobva kugadzira mufolda 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');
    }
}

Kodhi ikirasi ine zita rimwechete'create student records', uye ine nzira mbiri: kumusoro uye pasi. Iyo kumusoro nzira inofanirwa kuita shanduko kune database; saka pese paunotama dhatabhesi yako, chero kodhi iri kumusoro nzira inozoitwa. Kune rimwe divi, nzira yepasi inofanira kudzosera kumashure shanduko dze database; saka pese paunomhanya rollback della migration, nzira yepasi inofanira kugadzirisa zvakaitwa neup up method. Mukati nzira up pane schema muvaki anoshandiswa kugadzira uye kushandura matafura. Chii chinoitika kana ukakanzura kumwe kutama kwako? Zvose zvaunofanirwa kuita kushandisa murairo unotevera:

php artisan migrate:rollback

Uye achaunganidza wokupedzisira migration iyo yakaitwa. Zvakare, unogona kudzoreredza zvachose dhatabhesi nekumhanya:

php artisan migrate:reset

Izvi zvinobvisa kutama kwako kwese.

Defition ye modhi ye Eloquent

Mushure mekunge kutama kwe database kwapera, inotevera maitiro ndeye seedingEloquent inopinda mukutamba kubva seeding iri kuisa zvinyorwa mudura redu rekushandisa. Saka iwe unozofanirwa kugadzira matemplate usati wazadza dhatabhesi. Imwe neimwe tafura yedatabase ine modhi inoenderana iyo inoshandiswa kudyidzana netafura iyoyo. Matemplate anotendera iwe kubvunza iyo data mumatafura ako, pamwe nekuisa zvinyorwa zvitsva mutafura. Nzira iri nyore yekusimbisa iyo modhi ndeye kushandisa unotevera kuraira:

php artisan make:model Student
Muenzaniso we template unoratidzwa pazasi Student, iyo inogona kushandiswa kutora nekuchengetedza ruzivo kubva patafura yemudzidzi wedatabase:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Paunogadzira modhi uye panguva imwe chete iwe uchida kugadzira dhatabhesi kutama, unogona kushandisa sarudzo –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Mbeu

Vese varidzi vembeu seti yakakosha yemakirasi anotitendera kuti tizadze dhatabhesi redu kakawanda neiyo chaiyo data. Isu tinoshandisa murairo unotevera:

php artisan make:seeder StudentsRecordSeeder

Mune chinyorwa edhita, pasi pembeu folda, vhura iyo ichangobva kugadzirwa faira ine filename: StudentsRecordSeeder.php. Sezvauri kuona, iyi ingori kirasi yakapusa ine imwechete nzira inonzi run().

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Iyo kodhi ingori kuputira kutenderedza kirasi yekuraira kirasi, yakanyatso kuvakwa kubatsira nebasa re seeding. Rongedza kodhi uye wozoichengeta.

Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.
public function run()
{
    echo 'Seeding!';
}

Uye kuenda kune terminal:

php artisan db:seed --class=StudentsRecordSeeder

Iye zvino unogona kuzadza tafura nezvimwe zvinyorwa uye kumhanya:

php artisan db:seed --class=class=StudentsRecordSeeder

Pano iwe unogona kuramba uchidzima, uchiwedzera, uchigadzirisa zvinyorwa muDB, wozodzoreredza nemurairo uri nyore.

CRUD naLaravel Eloquent

Kushanda kweCRUD neLaravel Eloquent chinhu-relational mapper (ORM) kunoita kuti zvive nyore kune vanogadzira Laravel kushanda nemadhatabhesi akawanda. Inoita kugadzira, kuverenga, kugadzirisa, uye kudzima (CRUD) mashandiro, uye mepu zvinhu zvemhando kumatafura edatabase. Inobata zvese zvekudyidzana kwedatabase inodiwa kune CRUD mashandiro.

Kugadzira zvinyorwa

Unogona kushandisa ::kugadzira nzira yekuisa rekodhi nyowani mudhatabhesi.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Kuwedzera kune yakapusa nzira yekusika inoratidzwa pamusoro, iwe unogona zvakare kugadzira chinhu chitsva uye uchichipa akasiyana hunhu. Zvadaro, unogona kufonera iyo save() basa uye womhanyisa kodhi. Nzira dzakadai firstOrCreate() kana firstOrNew() ndedzimwe sarudzo dzekugadzira marekodhi. Izvi zvinokutendera kuti uwane mudzidzi ane humwe hunhu; kana mudzidzi iyeye akasawanikwa, unoigadzira mudhatabhesi kana kusimudzira chiitiko chitsva.

Kuverenga zvinyorwa

Uchishandisa Eloquent ORM, unogona kuwana marekodhi mudhatabhesi rako. Mibvunzo yacho inongogadzirwa uye inopa kuyerera kwakatsetseka. Kugadzira zvirevo:where, iwe uchashandisa nzira get() Uye first(). Nzira first() inongodzosa rekodhi imwe chete, nepo nzira get() ichadzorera loopable array yemarekodhi. Uyezve, nzira find() inogona kushandiswa nerudungwe rwemakiyi ekutanga, ayo anozodzosera muunganidzwa wemarekodhi anoenderana. Heino mimwe mienzaniso:

$student = Students::all();

Iyi kodhi inotora vadzidzi vese. Nepo iyo inotevera kodhi inowana chaiyo mudzidzi neID:

$mudzidzi = Vadzidzi ::wana(1);

Zvakare, sezvinoratidzwa pazasi, iyo kodhi inotsanangura kutsvaga mudzidzi zvichienderana nehumwe hunhu.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Kune iyo get() nzira, iyi kodhi inoratidza mawaniro emudzidzi ane nhanho pamusoro pe5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Record update

Kuvandudza marekodhi uchishandisa Eloquent zviri nyore. Kuti uvandudze rekodhi, ingotsvaga rekodhi raunoda kugadzirisa, gadzirisa hunhu uye chengeta. Semuenzaniso, kuti uchinje giredhi remudzidzi waJohn Doe kusvika pa5, tanga watsvaga mudzidzi wobva waita nzira yekuchengetedza.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Iyo nzira yekuchengetedza inogona zvakare kushandiswa kugadzirisa mamodheru atovepo mudhatabhesi.

Delete zvinyorwa

Eloquent inodada nezve nyore rekodhi kuvandudza maitiro, asi ine nyaya imwechete nekudzima. Pane zvingasarudzwa zviviri: kudhonza-kunze marekodhi uye kuita nzira yekudzima, kana kungoshandisa nzira yekuparadza. Kuti uwane uye kudzima rekodhi, ingo mhanyisa inotevera mirairo:

$student = Students::find(1);
$student->delete();

Kudzima rekodhi uye akawanda marekodhi, mirairo inomhanya:

Students::destroy(1);
Students::destroy(1, 2, 3);

Ziva kuti maparamendi ekuparadza anongori makiyi ekutanga akasiyana nzira yekudzima iyo inogona kugamuchira chero dhatabhesi column.

Kutsvaga nekudzima vadzidzi vese pamusoro pedanho regumi.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.

Zvinyorwa zvekare

Veeam inoratidzira yakanyatso tsigiro yerudzikinuro, kubva padziviriro kusvika pakupindura uye kupora

Coveware neVeeam icharamba ichipa cyber kubira chiitiko mhinduro masevhisi. Coveware ichapa forensics uye kugadzirisa kugona…

23 April 2024

Green uye Digital Revolution: Sei Predictive Maintenance iri Kushandura Oiri & Gasi Indasitiri

Kufanofungidzira kugadzirisa kuri kushandura chikamu cheoiri & gasi, nemaitiro matsva uye akasimba ekutarisira zvidyarwa.…

22 April 2024

UK antitrust regulator inosimudza BigTech alarm pamusoro peGenAI

Iyo UK CMA yakapa yambiro nezvemaitiro eBig Tech mumusika wehungwaru hwekugadzira. Ikoko…

18 April 2024

Casa Green: shanduko yesimba kune ramangwana rakagadzikana muItari

Chirevo che "Case Green", chakagadzirwa neEuropean Union kuti chiwedzere kushanda nesimba kwezvivakwa, chapedza hurongwa hwayo hwemutemo ne…

18 April 2024