I-Laravel kanye ne-Eloquent isiza ukusheshisa uhlelo lokusebenza nokuthuthukiswa kweplatifomu, inikeze isisombululo esanele sezinkinga eziningi. Izidingo zisingathwa ngokuthuthuka okusheshayo, kanye nekhodi ehlelwe kahle, esebenziseka kabusha, elondolozekayo, nengakala.
Onjiniyela bangasebenza ku Eloquent
ngokwaziswa okuningiliziwe kusetshenziswa ngempumelelo i-ActiveMethod. Kuyiphethini yezakhiwo lapho imodeli edalwe kusakhiwo se-Model-View-Controller (MVC) ihambisana netafula kusizindalwazi. Inzuzo ukuthi izifanekiso zenza imisebenzi yesizindalwazi esivamile ngaphandle kokufaka amakhodi imibuzo ende ye-SQL. Izifanekiso zikuvumela ukuthi ubuze idatha kumathebula futhi ufake amarekhodi amasha kumathebula. Inqubo yokuvumelanisa imininingwane eminingi esebenza kumasistimu ahlukene iyahlelwa. Awudingi ukubhala imibuzo ye-SQL. Okufanele ukwenze nje defiQedela amathebula esizindalwazi kanye nobudlelwano phakathi kwawo, futhi I-Eloquent izokwenza wonke umsebenzi.
Ukwazisa ukusetshenziswa kwe-ORM Ehlakaniphile, nokuqonda i-ecosystem kuyimfuneko. Izinyathelo zokuqalisa:
migration
usebenzisa i-console Artisan
eloquent
seed
yesizindalwaziArtisan Console
yigama lesixhumi esibonakalayo somugqa womyalo ofakwe kuLaravel. Inikeza isethi yemiyalo ewusizo ongayisebenzisa ngenkathi uthuthukisa uhlelo lwakho lokusebenza. Iqhutshwa ingxenye enamandla Symfony Console
.
Ukuze ubone uhlu lwayo yonke imiyalo ye-Artisan etholakalayo, ungasebenzisa umyalo wohlu:
php artisan list
Yonke imiyalo iza nencazelo emfushane yezimpikiswano zayo nezinketho. Lokhu kuboniswa esikrinini "sosizo". Ukuze ubonise isikrini sosizo, vele wandulele igama lomyalo ngokuthi “usizo” njengoba kukhonjisiwe:
php artisan help migrate
Migration
Ukufuduka kuyinqubo yokuphatha isizindalwazi ngokubhala i-PHP esikhundleni salokho SQL
. Inikeza indlela yokwengeza isilawuli senguqulo kusizindalwazi.
Ukuze udale ukufuduka, vele usebenzise umyalo olandelayo:
php artisan make:migration create_student_records
Lokhu kudala ifayela lokuthuthela. Kumhleli wakho wombhalo, vula ifayela osanda kulidala kufolda 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');
}
}
Ikhodi ikilasi elinegama elifanayo 'create student records
', futhi inezindlela ezimbili: phezulu naphansi. Indlela ephezulu kufanele yenze izinguquko kusizindalwazi; ngakho-ke noma nini lapho uthutha isizindalwazi sakho, noma iyiphi ikhodi esendleleni ephezulu izosetshenziswa. Ngakolunye uhlangothi, indlela ephansi kufanele ibuyisele emuva lezo zinguquko zesizindalwazi; ngakho noma nini ugijima i rollback
della migration
, indlela ephansi kufanele ihlehlise lokho okwenziwe yindlela yaphezulu. Ngaphakathi indlela up
kukhona umakhi we-schema osetshenziselwa ukudala nokukhohlisa amatafula. Kwenzekani uma ukhansela okunye ukufuduka kwakho? Okufanele ukwenze ukusebenzisa umyalo olandelayo:
php artisan migrate:rollback
Futhi uzoqoqa okokugcina migration
osekwenziwe. Futhi, ungakwazi ukubuyisela ngokugcwele isizindalwazi ngokusebenzisa:
php artisan migrate:reset
Lokhu kuzokhansela konke ukufuduka kwakho.
Eloquent
Ngemuva kokuthi ukufuduka kwesizindalwazi kuqediwe, inqubo elandelayo yilokhu seeding
. Eloquent
uyadlala kusukela seeding
ifaka amarekhodi kusizindalwazi sethu. Ngakho-ke uzodinga ukudala izifanekiso ngaphambi kokugcwalisa isizindalwazi. Ithebula ngalinye lesizindalwazi linemodeli ehambisanayo esetshenziselwa ukuxhumana nalelo thebula. Izifanekiso zikuvumela ukuthi ubuze ngedatha kumathebula akho, futhi ufake amarekhodi amasha etafuleni. Indlela elula yokufaka imodeli ukusebenzisa umyalo olandelayo:
php artisan make:model Student
Isibonelo sesifanekiso siboniswe ngezansi Student
, engasetshenziswa ukubuyisa nokugcina ulwazi kuthebula lesizindalwazi somfundi wethu:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Uma ukhiqiza imodeli futhi ngesikhathi esifanayo ufuna ukukhiqiza ukuthutha kwedathabhesi, ungasebenzisa inketho –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Sekukonke ama-seedders ayisethi ekhethekile yamakilasi asivumela ukuthi sigcwalise imininingwane yethu kaningi ngedatha efanayo ncamashi. Senza umyalo olandelayo:
php artisan make:seeder StudentsRecordSeeder
Kumhleli wombhalo, ngaphansi kwefolda yembewu, vula ifayela elisanda kwakhiwa elinegama lefayela: StudentsRecordSeeder.php
. Njengoba ubona lokhu kuyikilasi elilula kakhulu elinendlela eyodwa ebizwa ngokuthi run
().
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
Ikhodi imane nje iyisembozo esizungeze isigaba somyalo we-console, eyakhelwe ngokukhethekile ukusiza ngomsebenzi we seeding
. Hlela ikhodi bese uyigcina.
public function run()
{
echo 'Seeding!';
}
Futhi ukuya kutheminali:
php artisan db:seed --class=StudentsRecordSeeder
Manje usungagcwalisa ithebula ngokufakiwe futhi uqalise:
php artisan db:seed --class=class=StudentsRecordSeeder
Lapha ungaqhubeka nokususa, wengeza, ulungisa okufakiwe ku-DB, bese ukubuyisela ngomyalo olula.
Ukusebenza kwe-CRUD nge-Laravel Eloquent object-relational mapper (ORM) kwenza kube lula ngabathuthukisi be-Laravel ukuthi basebenze nezizindalwazi eziningi. Lenza imisebenzi yokudala, ukufunda, ukubuyekeza, nokususa (i-CRUD), futhi yenza amamodeli wezinto zamamephu kumathebula esizindalwazi. Iphatha konke ukusebenzisana kwesizindalwazi esidingekayo ekusebenzeni kwe-CRUD.
Ungasebenzisa ::ukudala indlela yokufaka irekhodi elisha kusizindalwazi.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
Ngokungeziwe endleleni yokudala elula eboniswe ngenhla, ungakwazi futhi ukudala into entsha futhi uyinikeze izici ezihlukile. Ngemuva kwalokho, ungashayela umsebenzi we-save() bese usebenzisa ikhodi. Izindlela ezifana firstOrCreate
() noma firstOrNew
() ezinye izinketho zokudala amarekhodi. Lokhu kuzokuvumela ukuthi uthole umfundi onezimfanelo ezithile; uma lowo mfundi engatholakali, uzokudala kusizindalwazi noma wenze isenzakalo esisha.
Ngokusebenzisa i-ORM Ehlakaniphile, ungathola amarekhodi kusizindalwazi sakho. Imibuzo yakhiwe kalula futhi inikeza ukugeleza okushelelayo. Ukudala izitatimende::where
, uzosebenzisa izindlela get
() Futhi first
(). Indlela first
() izobuyisela irekhodi elilodwa kuphela, kuyilapho indlela get
() izobuyisela amarekhodi amarekhodi. Futhi, indlela find
() ingasetshenziswa nohlu lokhiye abayinhloko, elizobuyisela iqoqo lamarekhodi afanayo. Nazi izibonelo:
$student = Students::all();
Le khodi ithola bonke abafundi. Ngenkathi ikhodi elandelayo ithola umfundi othile nge-ID:
$student = Abafundi ::thola(1);
Futhi, njengoba kukhonjisiwe ngezansi, ikhodi ichaza ukusesha umfundi ngokusekelwe kusibaluli esithile.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
Ngendlela ye-get(), le khodi ibonisa indlela yokuthola umfundi oneleveli engaphezu kuka-5.
$rankStudents = Student::where('student_rank', '>', 5)->get();
Ukubuyekeza amarekhodi usebenzisa i-Eloquent kulula ngendlela efanayo. Ukuze ubuyekeze irekhodi, vele uthole irekhodi ofuna ukulibuyekeza, hlela izimfanelo bese ulondoloza. Isibonelo, ukuze uguqule izinga lebanga lomfundi ka-John Doe libe ngu-5, qala ngokuthola umfundi bese wenza indlela yokulondoloza.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
Indlela yokulondoloza ingase isetshenziselwe ukubuyekeza amamodeli asevele ekhona kusizindalwazi.
I-Eloquent izishaya isifuba ngenqubo yayo elula yokubuyekeza irekhodi, kodwa inendaba efanayo nokususwa. Kunezindlela ezimbili ongakhetha kuzo: ukukhipha amarekhodi bese usebenzisa indlela yokususa, noma usebenzise indlela yokubhubhisa. Ukuze uthole futhi ususe irekhodi, mane usebenzise imiyalo elandelayo:
$student = Students::find(1);
$student->delete();
Ukususa irekhodi namarekhodi amaningi, imiyalo isetshenziswa:
Students::destroy(1);
Students::destroy(1, 2, 3);
Qaphela ukuthi amapharamitha wokubhubhisa angokhiye abayinhloko kuphela ngokungafani nendlela yokususa engamukela noma iyiphi ikholomu yesizindalwazi.
Ukuze uthole futhi ususe zonke izitshudeni ezingaphezu kwezinga le-10.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…
Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…
I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…
Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...