Erthyglau

Beth yw Laravel Eloquent, sut i'w ddefnyddio, tiwtorial gydag enghreifftiau

Mae fframwaith PHP Laravel yn cynnwys Mapiwr Perthynol Gwrthrychol Eloquent (ORM), sy'n darparu ffordd hynod hawdd o gyfathrebu â chronfa ddata. 

Mae Laravel ac Eloquent yn helpu i gyflymu datblygiad cymwysiadau a llwyfannau, gan ddarparu ateb digonol i'r mwyafrif o broblemau. Rhoddir sylw i ofynion gyda datblygiad cyflymach, yn ogystal â chod trefnus, y gellir ei ailddefnyddio, y gellir ei gynnal a'i raddio. 

Sut mae Eloquent yn gweithio

Gall datblygwyr weithio i mewn Eloquent gyda chronfeydd data lluosog yn effeithlon gan ddefnyddio gweithrediad ActiveMethod. Mae'n batrwm pensaernïol lle mae'r model a grëwyd yn strwythur Model-View-Controller (MVC) yn cyfateb i dabl yn y gronfa ddata. Y fantais yw bod y modelau'n perfformio gweithrediadau cronfa ddata cyffredin heb godio ymholiadau SQL hir. Mae templedi yn eich galluogi i ymholi data mewn tablau a mewnosod cofnodion newydd mewn tablau. Mae'r broses o gydamseru cronfeydd data lluosog sy'n rhedeg ar systemau gwahanol yn cael ei symleiddio. Nid oes angen i chi ysgrifennu ymholiadau SQL. Y cyfan sy'n rhaid i chi ei wneud yw defiGorffen y tablau cronfa ddata a'r berthynas rhyngddynt, a bydd Eloquent yn gwneud gweddill y gwaith.

Paratoi Laravel

Mae gwerthfawrogi defnyddioldeb ORM Eloquent, a deall yr ecosystem yn hanfodol. Camau i gychwyn arni:

  1. Gosod Laravel o getcomposer.org, i wneud hyn dilynwch y cyfarwyddiadau yma
  2. Creu migration defnyddio'r consol Artisan
  3. Creu templedi eloquent
  4. rhedeg i seed o'r gronfa ddata

Artisan Console yw enw'r rhyngwyneb llinell orchymyn sydd wedi'i gynnwys yn Laravel. Yn darparu set o orchmynion defnyddiol i'w defnyddio wrth ddatblygu'ch cais. Mae'n cael ei yrru gan y gydran pwerus Symfony Console.

I weld rhestr o'r holl orchmynion Artisan sydd ar gael, gallwch ddefnyddio'r gorchymyn rhestr:

php artisan list

Daw pob gorchymyn gyda disgrifiad cryno o'i ddadleuon a'i opsiynau. Dangosir hyn mewn sgrin "help". I arddangos sgrin gymorth, rhowch “help” o flaen yr enw gorchymyn fel y dangosir:

php artisan help migrate

Migration

Mae mudo yn broses rheoli cronfa ddata trwy ysgrifennu PHP yn lle hynny SQL. Yn darparu ffordd i ychwanegu rheolaeth fersiwn i'r gronfa ddata. 

I greu mudo, rhedwch y gorchymyn canlynol:

php artisan make:migration create_student_records

Mae hyn yn creu'r ffeil mudo. Yn eich golygydd testun, agorwch y ffeil rydych chi newydd ei chreu yn y ffolder 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');
    }
}

Mae'r cod yn ddosbarth gyda'r un enw'create student records', ac mae ganddo ddau ddull: i fyny ac i lawr. Dylai'r dull i fyny wneud newidiadau i'r gronfa ddata; felly pryd bynnag y byddwch yn mudo eich cronfa ddata, bydd unrhyw god yn y dull i fyny yn cael ei weithredu. Ar y llaw arall, dylai'r dull i lawr gyflwyno'r newidiadau cronfa ddata hynny yn ôl; felly pryd bynnag y byddwch yn rhedeg y rollback o migration, dylai'r dull i lawr ddadwneud yr hyn a wnaeth y dull i fyny. Y tu mewn i'r dull up yno mae'r adeiladwr sgema a ddefnyddir i greu a thrin y byrddau. Beth fydd yn digwydd os byddwch yn canslo rhai o'ch mudo? Y cyfan sy'n rhaid i chi ei wneud yw gweithredu'r gorchymyn canlynol:

php artisan migrate:rollback

A bydd yn casglu'r olaf migration sydd wedi cael ei rhoi ar waith. Hefyd, gallwch chi adfer y gronfa ddata yn llawn trwy redeg:

php artisan migrate:reset

Bydd hyn yn canslo eich holl fudiadau.

Defimodelau o Eloquent

Ar ôl i'r mudo cronfa ddata gael ei gwblhau, y broses nesaf yw'r seedingEloquent yn dod i chwarae ers y seeding yn mewnosod cofnodion yn ein cronfa ddata. Felly bydd angen i chi greu'r templedi cyn llenwi'r gronfa ddata. Mae gan bob tabl cronfa ddata fodel cyfatebol a ddefnyddir i ryngweithio â'r tabl hwnnw. Mae templedi yn caniatáu ichi gwestiynu'r data yn eich tablau, yn ogystal â mewnosod cofnodion newydd yn y tabl. Y ffordd hawsaf i gyflymu'r model yw defnyddio'r gorchymyn canlynol:

php artisan make:model Student
Dangosir enghraifft o dempled isod Student, y gellir ei ddefnyddio i adalw a storio gwybodaeth o dabl cronfa ddata ein myfyrwyr:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Pan fyddwch chi'n cynhyrchu model ac ar yr un pryd rydych chi am gynhyrchu mudo cronfa ddata, gallwch chi ddefnyddio'r opsiwn –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Hadwyr

Mae hadwyr cyffredinol yn set arbennig o ddosbarthiadau sy'n ein galluogi i lenwi ein cronfa ddata dro ar ôl tro gyda'r un data yn union. Rydym yn gweithredu'r gorchymyn canlynol:

php artisan make:seeder StudentsRecordSeeder

Yn y golygydd testun, o dan y ffolder hadau, agorwch y ffeil sydd newydd ei chreu gydag enw ffeil: StudentsRecordSeeder.php. Fel y gwelwch, dosbarth syml iawn yw hwn gydag un dull o'r enw run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Dim ond deunydd lapio o amgylch dosbarth gorchymyn consol yw'r cod, wedi'i adeiladu'n benodol i helpu gyda'r dasg o seeding. Golygu'r cod ac yna ei gadw.

Cylchlythyr arloesi
Peidiwch â cholli'r newyddion pwysicaf am arloesi. Cofrestrwch i'w derbyn trwy e-bost.
public function run()
{
    echo 'Seeding!';
}

Ac yn mynd i'r derfynell:

php artisan db:seed --class=StudentsRecordSeeder

Nawr gallwch chi lenwi'r tabl gyda rhai cofnodion a rhedeg:

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

Yma gallwch barhau i ddileu, ychwanegu, addasu cofnodion yn y DB, yna eu hadfer gyda gorchymyn syml.

CRUD gyda Laravel Eloquent

Mae gweithrediadau CRUD gyda mapiwr gwrthrych-berthynol Laravel Eloquent (ORM) yn ei gwneud hi'n haws i ddatblygwyr Laravel weithio gyda chronfeydd data lluosog. Mae'n perfformio gweithrediadau creu, darllen, diweddaru a dileu (CRUD), ac yn mapio modelau gwrthrych i dablau cronfa ddata. Ymdrin â'r holl ryngweithiadau cronfa ddata sydd eu hangen ar gyfer gweithrediadau CRUD.

Creu cofnodion

Gallwch ddefnyddio'r dull ::create i fewnosod cofnod newydd yn y gronfa ddata.

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

Yn ogystal â'r dull creu syml a ddangosir uchod, gallwch hefyd greu gwrthrych newydd a rhoi gwahanol briodoleddau iddo. Yna, gallwch chi ffonio'r swyddogaeth arbed () a rhedeg y cod. Dulliau fel firstOrCreate()o firstOrNew() yn opsiynau eraill ar gyfer creu cofnodion. Bydd y rhain yn eich galluogi i ddod o hyd i fyfyriwr gyda nodweddion penodol; os na chanfyddir y myfyriwr hwnnw, byddwch yn ei greu yn y gronfa ddata neu'n cychwyn enghraifft newydd.

Darllen cofnodion

Gan ddefnyddio Eloquent ORM, gallwch ddod o hyd i gofnodion yn eich cronfa ddata. Mae ymholiadau'n cael eu hadeiladu'n syml ac yn cynnig llif llyfn. I greu datganiadau:where, byddwch yn defnyddio'r dulliau get() Ac first(). Y dull first() bydd ond yn dychwelyd un cofnod, tra bod y dull get() yn dychwelyd amrywiaeth dolenadwy o gofnodion. Hefyd, y dull find() gellir ei ddefnyddio gydag amrywiaeth o allweddi cynradd, a fydd yn dychwelyd casgliad o gofnodion cyfatebol. Dyma rai enghreifftiau:

$student = Students::all();

Mae'r cod hwn yn cael pob myfyriwr. Tra bod y cod canlynol yn dod o hyd i fyfyriwr penodol trwy ID:

$student = Myfyrwyr::darganfod(1);

Hefyd, fel y dangosir isod, mae'r cod yn disgrifio chwilio am fyfyriwr yn seiliedig ar briodwedd benodol.

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

Ar gyfer y dull get(), mae'r cod hwn yn dangos sut i ddod o hyd i fyfyriwr â lefel uwch na 5.

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

Mae diweddaru cofnodion gan ddefnyddio Eloquent yr un mor hawdd. I ddiweddaru cofnod, dewch o hyd i'r cofnod rydych chi am ei ddiweddaru, golygu'r priodoleddau a chadw. Er enghraifft, i newid lefel gradd myfyriwr John Doe i 5, darganfyddwch y myfyriwr yn gyntaf ac yna gweithredwch y dull arbed.

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

Gellir defnyddio'r dull arbed hefyd i ddiweddaru modelau sydd eisoes yn bodoli yn y gronfa ddata.

Dileu cofnodion

Mae huawdl yn ymffrostio yn ei phroses hawdd o ddiweddaru cofnodion, ond mae ganddo'r un stori â dileu. Mae dau opsiwn: tynnu allan cofnodion a gweithredu'r dull dileu, neu dim ond defnyddio'r dull dinistrio. I ddod o hyd i gofnod a'i ddileu, rhedwch y gorchmynion canlynol:

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

I ddileu cofnod a chofnodion lluosog, mae'r gorchmynion yn cael eu rhedeg:

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

Sylwch mai dim ond allweddi cynradd yw paramedrau dinistrio, yn wahanol i'r dull dileu a all dderbyn unrhyw golofn cronfa ddata.

Canfod a dileu pob myfyriwr uwchlaw lefel 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Cylchlythyr arloesi
Peidiwch â cholli'r newyddion pwysicaf am arloesi. Cofrestrwch i'w derbyn trwy e-bost.

Erthyglau Diweddar

Sut i gyfuno data yn Excel

Mae unrhyw weithrediad busnes yn cynhyrchu llawer o ddata, hyd yn oed mewn gwahanol ffurfiau. Rhowch y data hwn â llaw o ddalen Excel i…

14 Mai 2024

Egwyddor gwahanu rhyngwyneb (ISP), pedwerydd egwyddor SOLID

Mae egwyddor gwahanu rhyngwyneb yn un o'r pum egwyddor SOLID o ddylunio gwrthrych-ganolog. Dylai fod gan ddosbarth…

14 Mai 2024

Y ffordd orau o drefnu data a fformiwlâu yn Excel, ar gyfer dadansoddiad sydd wedi'i wneud yn dda

Microsoft Excel yw'r offeryn cyfeirio ar gyfer dadansoddi data, oherwydd mae'n cynnig llawer o nodweddion ar gyfer trefnu setiau data,…

14 Mai 2024

Casgliad cadarnhaol ar gyfer dau brosiect ariannu Torfol Ecwiti Walliance pwysig: Jesolo Wave Island a Milano Via Ravenna

Mae Walliance, SIM a llwyfan ymhlith yr arweinwyr yn Ewrop ym maes Cyllid Torfol Eiddo Tiriog ers 2017, yn cyhoeddi ei fod wedi'i gwblhau…

13 Mai 2024

Beth yw ffilament a sut i ddefnyddio Ffilament Laravel

Mae ffilament yn fframwaith datblygu Laravel "cyflym", sy'n darparu sawl cydran pentwr llawn. Fe'i cynlluniwyd i symleiddio'r broses o…

13 Mai 2024

O dan reolaeth Deallusrwydd Artiffisial

«Rhaid i mi ddychwelyd i gwblhau fy esblygiad: byddaf yn taflu fy hun y tu mewn i'r cyfrifiadur ac yn dod yn egni pur. Wedi setlo yn…

10 Mai 2024

Gall deallusrwydd artiffisial newydd Google fodelu DNA, RNA a "holl foleciwlau bywyd"

Mae Google DeepMind yn cyflwyno fersiwn well o'i fodel deallusrwydd artiffisial. Mae'r model gwell newydd yn darparu nid yn unig…

9 Mai 2024

Darllenwch Arloesedd yn eich iaith

Cylchlythyr arloesi
Peidiwch â cholli'r newyddion pwysicaf am arloesi. Cofrestrwch i'w derbyn trwy e-bost.

Dilynwch ni