Tefito

He aha te Laravel Eloquent, me pehea te whakamahi, akoranga me nga tauira

Kei roto i te angamahi Laravel PHP te Eloquent Object Relational Mapper (ORM), e whakarato ana i te huarahi tino ngawari ki te whakawhitiwhiti korero me te papaa raraunga. 

Ka awhina a Laravel me te Eloquent ki te whakatere i te tono me te whakawhanaketanga papaarangi, e whakarato ana i te otinga tika mo te nuinga o nga raru. Ka whakatutukihia nga whakaritenga me te whakawhanaketanga tere, me te pai te whakarite, te whakamahi ano, te tiaki, me te tohu tohu. 

Te mahi a Eloquent

Ka taea e nga kaihanga te mahi i roto Eloquent me te maha o nga papaunga raraunga ma te whakamahi i te whakatinanatanga ActiveMethod. He tauira hoahoanga e hono ana te tauira i hangaia i roto i te hanganga Tauira-Tirohanga-Kaiwhakahaere (MVC) ki tetahi ripanga i roto i te paataka raraunga. Ko te painga ko nga tauira e mahi ana i nga mahi papaa raraunga noa me te kore e tohuhia nga patai SQL roa. Ma nga tauira ka taea e koe te uiui raraunga ki nga ripanga me te whakauru i nga rekoata hou ki nga ripanga. Ko te tukanga o te tukutahi i nga papaunga raraunga maha e rere ana i runga i nga punaha rereke ka ngawari. Kaore koe e hiahia ki te tuhi i nga patai SQL. Ko nga mea katoa hei mahi maau defiWhakaotihia nga ripanga raraunga me nga hononga i waenganui i a raatau, ka mahia e Eloquent te toenga o nga mahi.

Te whakarite Laravel

Ko te maioha ki te whaipainga o Eloquent ORM, me te mohio ki te puunaha rauwiringa kaiao he mea tika. Nga taahiraa hei timata:

  1. Tāutahia a Laravel mai i getcomposer.org, ki te mahi i tenei me whai i nga tohutohu i konei
  2. Waihanga migration te whakamahi i te papatohu Artisan
  3. Waihanga tauira eloquent
  4. rere i seed o te pātengi raraunga

Artisan Console Ko te ingoa o te atanga raina whakahau kei roto i a Laravel. Ka whakarato i te huinga o nga whakahau whai hua hei whakamahi i te wa e whakawhanake ana i to tono. Kei te peia e te waahanga kaha Symfony Console.

Hei kite i te rarangi o nga tono a Artisan katoa e waatea ana, ka taea e koe te whakamahi i te whakahau rarangi:

php artisan list

Ka tae mai nga whakahau katoa me te whakamaarama poto o ana tohenga me ana whiringa. Ka whakaatuhia tenei ki te mata "awhina". Hei whakaatu i te mata awhina, tomua noa i te ingoa whakahau me te "awhina" penei i te whakaatu:

php artisan help migrate

Migration

Ko te Migration he tukanga whakahaere raraunga ma te tuhi i te PHP SQL. Ka whakarato i tetahi huarahi ki te taapiri i te mana putanga ki te papaunga raraunga. 

Hei waihanga hekenga, whakahaere noa i te whakahau e whai ake nei:

php artisan make:migration create_student_records

Ka waihangahia te konae heke. I roto i to ētita tuhinga, whakatuwherahia te konae i hanga e koe i roto i te kōpaki 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');
    }
}

Ko te waehere he karaehe he rite te ingoa 'create student records', a e rua nga tikanga: ki runga me raro. Ko te tikanga ki runga me whakarereke i te paataka raraunga; no reira i nga wa katoa ka heke koe i to papaunga raraunga, ka mahia nga waehere kei runga ake. I tetahi atu taha, ko te tikanga ki raro me huri ki muri i aua huringa putunga raraunga; na i nga wa katoa ka whakahaere koe i te rollback della migration, me whakakore te tikanga whakararo i ta te tikanga whakarunga. I roto i te tikanga up kei reira te kaihanga aronuinga hei hanga me te raweke i nga ripanga. Ka aha mena ka whakakorehia e koe etahi o ou hekenga? Ko nga mea katoa ka mahia e koe ko te whakatinana i te whakahau e whai ake nei:

php artisan migrate:rollback

A ka kohia e ia te mea whakamutunga migration kua whakatinanahia. Ano, ka taea e koe te whakaora katoa i te papaa raraunga ma te whakahaere:

php artisan migrate:reset

Ma tenei ka whakakore i o hekenga katoa.

Defition o tauira o Eloquent

Ka oti te hekenga raraunga, ko te mahi e whai ake nei ko te seedingEloquent mai ki te takaro mai i te seeding kei te whakauru i nga rekoata ki roto i ta maatau papaa raraunga. Na me hanga e koe nga tauira i mua i te whakakii i te paataka raraunga. Kei ia ripanga pātengi raraunga he tauira rite e whakamahia ana hei taunekeneke ki taua ripanga. Ma nga tauira ka taea e koe te uiui i nga raraunga i o ripanga, me te whakauru i nga rekoata hou ki te ripanga. Ko te huarahi ngawari ki te whakaatu i te tauira ko te whakamahi i te whakahau e whai ake nei:

php artisan make:model Student
Kei raro nei he tauira tauira tauira Student, ka taea te whakamahi ki te tiki me te penapena i nga korero mai i te ripanga putunga raraunga a taatau tauira:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Ina whakaputa koe i tetahi tauira me te wa ano ka hiahia koe ki te whakaputa i te hekenga raraunga, ka taea e koe te whakamahi i te whiringa –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Nga Kaikorero

Ko te nuinga o nga kaikorero he huinga karaehe motuhake e taea ai e tatou te whakakii i o maatau paparangi raraunga me nga raraunga rite tonu. Ka whakatinanahia e matou te whakahau e whai ake nei:

php artisan make:seeder StudentsRecordSeeder

I roto i te ētita kuputuhi, i raro i te kōpaki kākano, whakatuwhera i te konae i hangaia hou me te ingoa konae: StudentsRecordSeeder.php. Ka taea e koe te kite, he akomanga tino ngawari tenei me te tikanga kotahi e kiia ana run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Ko te waehere he takai huri noa i te karaehe whakahau papatohu, i hangaia hei awhina i nga mahi o seeding. Whakatikahia te waehere ka tiakina.

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.
public function run()
{
    echo 'Seeding!';
}

A ka haere ki te tauranga:

php artisan db:seed --class=StudentsRecordSeeder

Inaianei ka taea e koe te whakakii i te ripanga ki etahi whakaurunga ka whakahaere:

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

I konei ka taea e koe te whakakore tonu, te taapiri, te whakarereke i nga whakaurunga i roto i te DB, katahi ka whakahoki mai ma te whakahau ngawari.

CRUD me Laravel Eloquent

Ko nga mahi a te CRUD me Laravel Eloquent object-relational mapper (ORM) he maamaa ake mo nga kaiwhakawhanake Laravel ki te mahi me nga papaa raraunga maha. Ka mahia e ia nga mahi hanga, panui, whakahou me te muku (CRUD), me te mapi tauira ahanoa ki nga ripanga putunga. Ka whakahaere i nga taunekeneke katoa e hiahiatia ana mo nga mahi CRUD.

Te hanga rekoata

Ka taea e koe te whakamahi i te tikanga ::create ki te whakauru i tetahi rekoata hou ki roto i te papaunga raraunga.

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

I tua atu i te tikanga hanga ngawari e whakaatuhia ana i runga ake nei, ka taea hoki e koe te hanga i tetahi mea hou ka hoatu ki a ia etahi huanga rereke. Na, ka taea e koe te karanga i te mahi tiaki () me te whakahaere i te waehere. Nga tikanga penei firstOrCreate() ranei firstOrNew() etahi atu whiringa mo te hanga rekoata. Ma enei ka taea e koe te kimi i tetahi tauira me etahi huanga; ki te kore e kitea taua akonga, ka waihangahia e koe ki te paataka raraunga, ka mahia he tauira hou ranei.

Te panui rekoata

Ma te whakamahi i te Eloquent ORM, ka kitea e koe nga rekoata i roto i to papaunga raraunga. He mea hanga noa nga patai me te tuku i te rere maeneene. Hei hanga korero::where, ka whakamahi koe i nga tikanga get() A first(). Ko te tikanga first() ka whakahokia kotahi te rekoata, ko te tikanga get() ka whakahoki mai i te huinga rekoata ka taea. Ano, te tikanga find() ka taea te whakamahi me te huinga o nga taviri tuatahi, ka whakahoki mai i te kohinga o nga rekoata rite. Anei etahi tauira:

$student = Students::all();

Ka whiwhi tenei waehere i nga akonga katoa. Ahakoa ka kitea e te waehere e whai ake nei tetahi akonga motuhake ma te ID:

$akonga = Students::find(1);

I tua atu, pera i te whakaaturanga i raro nei, e whakaatu ana te waehere mo te rapu i tetahi akonga i runga i tetahi huanga motuhake.

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

Mo te tikanga tiki(), ka whakaatu tenei waehere me pehea te kimi i tetahi tauira kei runga ake i te 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Tuhia te whakahou

He ngawari noa te whakahou i nga rekoata ma te Eloquent. Hei whakahou i tetahi rekoata, kimihia te rekoata e hiahia ana koe ki te whakahou, whakatika i nga huanga me te tiaki. Hei tauira, hei huri i te taumata o te karaehe o te tauira a John Doe ki te 5, tuatahi kimihia te tauira ka mahia te tikanga tiaki.

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

Ka taea hoki te whakamahi i te tikanga tiaki ki te whakahōu tauira kua noho kē ki te pātengi raraunga.

Mukua nga rekoata

E whakahīhī ana a Eloquent mo tana mahi whakahōu rekoata ngawari, engari he rite tonu te korero me te mukunga. E rua nga whiringa: kumea nga rekoata ka mahia te tikanga whakakore, ka whakamahi noa ranei i te tikanga whakangaro. Hei kimi me te muku i tetahi rekoata, whakahaere noa i nga whakahau e whai ake nei:

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

Hei muku i tetahi rekoata me nga rekoata maha, ka whakahaerehia nga whakahau:

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

Kia mahara ko nga tawhā o te whakangaro he mau taviri tuatahi anake kaore i rite ki te tikanga muku ka taea te whakaae ki tetahi poupae raraunga.

Hei kimi me te muku i nga akonga katoa kei runga ake i te taumata 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

Nga tuhinga o mua

Ka haina nga Kaiwhakaputa me te OpenAI i nga whakaaetanga hei whakahaere i te rere o nga korero i tukatukahia e Artificial Intelligence

I te Mane kua hipa, i panuitia e te Financial Times tetahi mahi me OpenAI. Ka raihana a FT i tana kairipoata o te ao…

30 Paenga-whāwhā 2024

Utu Ipurangi: Anei te pehea o nga Ratonga Rere e Utu ana koe mo ake tonu atu

E hia miriona nga taangata e utu ana mo nga ratonga rerema, e utu ana i nga utu ohaurunga ia marama. Ko te whakaaro noa ko koe…

29 Paenga-whāwhā 2024

Kei a Veeam te tautoko tino whanui mo te ransomware, mai i te whakamarumaru ki te whakautu me te whakaora

Ka whakarato tonu a Coveware na Veeam i nga ratonga whakautu mai i nga aitua. Ka tukuna e Coveware nga mahi whakawai me te whakatikatika…

23 Paenga-whāwhā 2024

Hurihuri Kakariki me te Mamati: He pehea te Huringa Matapae i te Hurihanga i te Ahumahi Hinu me te Hau

Ko te tiaki matapae kei te huri haere i te waahanga hinu me te hau, me te huarahi auaha me te kaha ki te whakahaere tipu.…

22 Paenga-whāwhā 2024