Articles

He aha ka Laravel Eloquent, pehea e hoʻohana ai, aʻo me nā hiʻohiʻona

Aia ka Laravel PHP framework me Eloquent Object Relational Mapper (ORM), e hāʻawi ana i kahi ala maʻalahi loa e kamaʻilio me kahi waihona. 

Kōkua ʻo Laravel a me Eloquent i ka wikiwiki ʻana i ka noi a me ka hoʻomohala ʻana i ka platform, e hāʻawi ana i kahi hopena kūpono i ka hapa nui o nā pilikia. Hoʻopili ʻia nā koi me ka hoʻomohala wikiwiki ʻana, a me ka hoʻonohonoho maikaʻi ʻana, hiki ke hoʻohana hou ʻia, mālama ʻia, a me ka scalable code. 

Pehea e hana ai ka Eloquent

Hiki i nā mea hoʻomohala ke hana i loko Eloquent me ka hoʻohana ʻana i kahi hoʻokō ActiveMethod. He kumu hoʻohālike ia kahi i hana ʻia ai ke kumu hoʻohālike i loko o ka hoʻolālā Model-View-Controller (MVC) e pili ana i kahi papa ma ka waihona. ʻO ka pōmaikaʻi ʻo ia ka hana ʻana o nā hiʻohiʻona i nā hana ʻikepili maʻamau me ka ʻole o ka helu ʻana i nā nīnau SQL lōʻihi. Hāʻawi nā templates iā ʻoe e nīnau i nā ʻikepili ma nā papa a hoʻokomo i nā moʻolelo hou i loko o nā papa. Ua maʻalahi ke kaʻina hana o ka hoʻonohonoho ʻana i nā ʻikepili lehulehu e holo ana ma nā ʻōnaehana like ʻole. ʻAʻole pono ʻoe e kākau i nā nīnau SQL. ʻO kāu hana wale nō defiE hoʻopau i nā papa ʻikepili a me nā pilina ma waena o lākou, a na Eloquent e hana i ke koena o ka hana.

Hoʻomākaukau Laravel

ʻO ka mahalo i ka pono o Eloquent ORM, a me ka hoʻomaopopo ʻana i ke kaiaola he mea pono. Nā ʻanuʻu e hoʻomaka ai:

  1. E hoʻouka iā Laravel mai getcomposer.org, e hana i kēia e hahai i nā kuhikuhi ma aneʻi
  2. Hana migration me ka hoʻohana ʻana i ka console Artisan
  3. E hana i nā mamana eloquent
  4. holo i seed o ka waihona

Artisan Console ʻo ia ka inoa o ka laina kauoha i hoʻokomo ʻia ma Laravel. Hāʻawi i kahi pūʻulu o nā kauoha pono e hoʻohana i ka wā e hoʻomohala ana i kāu noi. Hoʻokele ʻia e ka ʻāpana ikaika Symfony Console.

No ka ʻike ʻana i kahi papa inoa o nā kauoha Artisan āpau i loaʻa, hiki iā ʻoe ke hoʻohana i ke kauoha papa inoa:

php artisan list

Hele mai nā kauoha a pau me ka wehewehe pōkole o kāna mau hoʻopaʻapaʻa a me nā koho. Hōʻike ʻia kēia ma kahi pale "kōkua". No ka hōʻike ʻana i kahi pale kōkua, ma mua o ka inoa kauoha me ka "kōkua" e like me ka hōʻike ʻana:

php artisan help migrate

Migration

ʻO ka Migration kahi kaʻina hoʻokele waihona ma ke kākau ʻana iā PHP SQL. Hāʻawi i kahi ala e hoʻohui i ka mana mana i ka waihona. 

No ka hana ʻana i kahi migration, e holo wale i kēia kauoha:

php artisan make:migration create_student_records

Hoʻokumu kēia i ka faila neʻe. Ma kāu hoʻoponopono kikokikona, wehe i ka faila āu i hana ai ma ka waihona 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');
    }
}

ʻO ke code he papa me ka inoa like 'create student records', a he ʻelua mau ala: piʻi a lalo. Pono ke ala i luna e hoʻololi i ka waihona; no laila ke neʻe ʻoe i kāu waihona, e hoʻokō ʻia kekahi code ma ke ala i luna. Ma ka ʻaoʻao ʻē aʻe, ʻo ke ala iho e hoʻohuli i kēlā mau hoʻololi ʻikepili; no laila ke holo ʻoe i ka rollback della migration, ʻo ke ala iho e hoʻopau i ka hana a ke ala i luna. I loko o ke ʻano up aia ka mea hana schema i hoʻohana ʻia no ka hana ʻana a hoʻoponopono i nā papa. He aha ka hopena inā hoʻopau ʻoe i kekahi o kāu mau neʻe? ʻO nā mea a pau āu e hana ai, e hoʻokō i kēia kauoha:

php artisan migrate:rollback

A e hōʻiliʻili ʻo ia i ka mea hope loa migration i hoʻokō ʻia. Eia kekahi, hiki iā ʻoe ke hoʻihoʻi piha i ka waihona ma ka holo ʻana:

php artisan migrate:reset

E hoʻopau kēia i kāu mau neʻe a pau.

Definition of models Eloquent

Ma hope o ka pau ʻana o ka neʻe ʻana o ka waihona, ʻo ke kaʻina hana aʻe ka seedingEloquent hele mai i ka pāʻani mai ka seeding ke hoʻokomo nei i nā moʻolelo i loko o kā mākou waihona. No laila pono ʻoe e hana i nā mamana ma mua o ka hoʻokomo ʻana i ka waihona. Loaʻa i kēlā me kēia papa ʻikepili kahi kumu hoʻohālike i hoʻohana ʻia e launa pū me kēlā pākaukau. Hāʻawi nā templates iā ʻoe e nīnau i ka ʻikepili i kāu mau papa, a me ka hoʻokomo ʻana i nā moʻolelo hou i loko o ka papa. ʻO ke ala maʻalahi e hoʻomaka koke i ke kumu hoʻohālike e hoʻohana i kēia kauoha:

php artisan make:model Student
Hōʻike ʻia ma lalo nei kahi laʻana o kahi laʻana Student, hiki ke hoʻohana ʻia e kiʻi a mālama i ka ʻike mai ka papa ʻikepili o kā mākou haumāna:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Ke hana ʻoe i kahi hoʻohālike a i ka manawa like āu e makemake ai e hana i ka neʻe ʻana i ka waihona, hiki iā ʻoe ke hoʻohana i ke koho –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Kahuna hua

ʻO nā mea kanu holoʻokoʻa he pūʻulu kūikawā o nā papa e ʻae iā mākou e hoʻopiha pinepine i kā mākou waihona me ka ʻikepili like. Hoʻokō mākou i kēia kauoha:

php artisan make:seeder StudentsRecordSeeder

I ka mea hoʻoponopono kikokikona, ma lalo o ka waihona hua, wehe i ka faila i hana hou ʻia me ka inoa file: StudentsRecordSeeder.php. E like me kāu e ʻike ai he papa maʻalahi loa kēia me kahi ala hoʻokahi i kapa ʻia run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

ʻO ke code he mea hoʻopili wale i kahi papa kauoha console, i kūkulu ʻia e kōkua i ka hana o seeding. Hoʻoponopono i ke code a laila mālama.

Nupepa hou
Mai poina i ka nūhou nui loa e pili ana i ka hana hou. E kākau inoa e loaʻa iā lākou ma ka leka uila.
public function run()
{
    echo 'Seeding!';
}

A e hele ana i ka terminal:

php artisan db:seed --class=StudentsRecordSeeder

I kēia manawa hiki iā ʻoe ke hoʻopiha i ka papaʻaina me kekahi mau mea komo a holo:

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

Maʻaneʻi hiki iāʻoe ke hoʻomau i ka holoiʻana, hoʻohui, hoʻololi i nā mea komo i ka DB, a laila e hoʻihoʻi iā lākou me kahi kauoha maʻalahi.

CRUD me Laravel Eloquent

ʻO nā hana CRUD me Laravel Eloquent object-relational mapper (ORM) e maʻalahi i nā mea hoʻomohala Laravel e hana me nā ʻikepili he nui. Hana ia i nā hana hana, heluhelu, hoʻohou, a holoi (CRUD), a palapala ʻāina i nā mea hoʻohālike i nā papa ʻikepili. Hoʻohana i nā pilina ʻikepili āpau i koi ʻia no nā hana CRUD.

Ka hana ʻana i nā moʻolelo

Hiki iā ʻoe ke hoʻohana i ke ʻano ::create e hoʻokomo i kahi moʻolelo hou i loko o ka waihona.

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

Ma waho aʻe o ke ʻano hana maʻalahi i hōʻike ʻia ma luna, hiki iā ʻoe ke hana i kahi mea hou a hāʻawi iā ia i nā ʻano ʻokoʻa. A laila, hiki iā ʻoe ke kāhea i ka hana mālama () a holo i ke code. Nā ʻano like firstOrCreate() a i ʻole firstOrNew() nā koho ʻē aʻe no ka hana ʻana i nā moʻolelo. E ʻae kēia iā ʻoe e ʻimi i kahi haumāna me kekahi mau ʻano; inā ʻaʻole ʻike ʻia kēlā haumāna, e hana ʻoe iā ia i loko o ka waihona a i ʻole e hoʻomaka koke i kahi mea hou.

Heluhelu mooolelo

Ke hoʻohana nei i ka Eloquent ORM, hiki iā ʻoe ke loaʻa nā moʻolelo ma kāu waihona. Hoʻokumu wale ʻia nā nīnau a hāʻawi i ka holo mālie. No ka hana ʻana i nā ʻōlelo::where, e hoʻohana ʻoe i nā ʻano hana get() A first(). ʻO keʻano first() e hoʻihoʻi wale i hoʻokahi moʻolelo, ʻoiai ke ʻano get() e hoʻihoʻi mai i kahi papa inoa o nā moʻolelo. Eia kekahi, ke ʻano find() hiki ke hoʻohana ʻia me nā kī nui, e hoʻihoʻi i kahi hōʻiliʻili o nā moʻolelo pili. Eia kekahi mau laʻana:

$student = Students::all();

Loaʻa kēia code i nā haumāna āpau. ʻOiai e loaʻa ana kēia code i kahi haumāna kikoʻī ma ka ID:

$haumāna = Haumāna::find(1);

Eia kekahi, e like me ka mea i hōʻike ʻia ma lalo nei, wehewehe ke code i ka ʻimi ʻana i kahi haumāna ma muli o kahi ʻano kikoʻī.

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

No ke ala loaʻa (), hōʻike kēia code pehea e ʻike ai i kahi haumāna me kahi pae ma luna o 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Hoʻopaʻa hou

He maʻalahi ka hoʻonui ʻana i nā moʻolelo me ka hoʻohana ʻana iā Eloquent. No ka hoʻohou i kahi moʻolelo, e ʻimi wale i ka moʻolelo āu e makemake ai e hoʻonui, hoʻoponopono i nā ʻano a mālama. No ka laʻana, e hoʻololi i ka pae papa o kā John Doe haumāna i 5, e ʻimi mua i ka haumāna a laila e hoʻokō i ke ʻano mālama.

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

Hiki ke hoʻohana ʻia ke ʻano mālama e hoʻohou i nā hiʻohiʻona i loaʻa i ka waihona.

Holoi i nā moʻolelo

Haʻaheo ʻo Eloquent i kāna kaʻina hana hoʻoponopono moʻolelo maʻalahi, akā he moʻolelo like me ka holoi ʻana. ʻElua mau koho: huki i nā moʻolelo a hoʻokō i ke ala holoi, a i ʻole e hoʻohana i ke ʻano luku. No ka ʻimi a holoi ʻana i kahi moʻolelo, e holo wale i kēia mau kauoha:

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

No ka holoi ʻana i kahi moʻolelo a me nā moʻolelo he nui, holo nā kauoha:

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

E hoʻomaopopo ʻo nā ʻāpana o ka luku ʻana he mau kī mua wale nō e like me ke ʻano holoi e hiki ke ʻae i kekahi kolamu waihona.

No ka huli a holoi i nā haumāna a pau ma luna o ka pae 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Nupepa hou
Mai poina i ka nūhou nui loa e pili ana i ka hana hou. E kākau inoa e loaʻa iā lākou ma ka leka uila.

Nā nūpepa hou

Hoʻopaʻa inoa nā mea hoʻopuka a me OpenAI i nā ʻaelike e hoʻoponopono i ka kahe o ka ʻike i hana ʻia e Artificial Intelligence

I ka Pōʻakahi i hala, ua hoʻolaha ka Financial Times i kahi kuʻikahi me OpenAI. Laikini ʻo FT i kāna nūpepa papa honua…

30ʻApelila 2024

Uku Online: Eia ke ʻano e uku mau ai nā lawelawe Streaming iā ʻoe

E uku ana nā miliona o ka poʻe no nā lawelawe streaming, e uku ana i nā uku kau inoa o kēlā me kēia mahina. He manaʻo maʻamau ʻoe…

29ʻApelila 2024

Hōʻike ʻo Veeam i ke kākoʻo piha loa no ka ransomware, mai ka pale ʻana i ka pane a me ka hoʻihoʻi

E hoʻomau ʻo Coveware e Veeam i ka hoʻolako ʻana i nā lawelawe pane ʻana i ka hanana cyber extortion. E hāʻawi ʻo Coveware i nā forensics a me nā mana hoʻoponopono…

23ʻApelila 2024

ʻO Green and Digital Revolution: Pehea ka hoʻololi ʻana o ka mālama ʻana i ka ʻoihana ʻaila a me nā kinoea

Ke hoʻololi nei ka mālama wānana ʻana i ka ʻāpana ʻaila a me ke kinoea, me kahi ala hou a hoʻoikaika i ka hoʻokele mea kanu.…

22ʻApelila 2024