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.
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.
Ko te maioha ki te whaipainga o Eloquent ORM, me te mohio ki te puunaha rauwiringa kaiao he mea tika. Nga taahiraa hei timata:
migration
te whakamahi i te papatohu Artisan
eloquent
seed
o te pātengi raraungaArtisan 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.
Eloquent
Ka oti te hekenga raraunga, ko te mahi e whai ake nei ko te seeding
. Eloquent
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
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.
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.
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.
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.
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();
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.
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
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…
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…
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…
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.…