Artikel

Apa Laravel Eloquent, carane nggunakake, tutorial karo conto

Framework PHP Laravel kalebu Eloquent Object Relational Mapper (ORM), sing nyedhiyakake cara sing gampang banget kanggo komunikasi karo database. 

Laravel lan Eloquent mbantu nyepetake pangembangan aplikasi lan platform, nyedhiyakake solusi sing nyukupi kanggo umume masalah. Persyaratan ditanggulangi kanthi pangembangan sing luwih cepet, uga kode sing disusun kanthi apik, bisa digunakake maneh, bisa dijaga, lan bisa diukur. 

Carane Eloquent dianggo

Pangembang bisa kerja ing Eloquent kanthi macem-macem database kanthi efisien nggunakake implementasi ActiveMethod. Iki minangka pola arsitektur ing ngendi model sing digawe ing struktur Model-View-Controller (MVC) cocog karo tabel ing database. Kauntungane yaiku model nindakake operasi basis data umum tanpa ngode pitakon SQL sing dawa. Cithakan ngidini sampeyan takon data ing tabel lan nglebokake cathetan anyar menyang tabel. Proses nyinkronake pirang-pirang database sing mlaku ing sistem sing beda-beda wis disederhanakake. Sampeyan ora perlu nulis pitakon SQL. Kabeh sing kudu dilakoni yaiku defiRampungake tabel database lan hubungane, lan Eloquent bakal nindakake tugas liyane.

Persiapan Laravel

Ngapresiasi sarana Eloquent ORM, lan mangerteni ekosistem iku kudu. Langkah-langkah kanggo miwiti:

  1. Instal Laravel saka getcomposer.org, kanggo nindakake iki tindakake pandhuan ing kene
  2. Nggawe migration nggunakake console Artisan
  3. Nggawe cithakan eloquent
  4. mlayu i seed saka database

Artisan Console iku jeneng antarmuka baris printah kalebu ing Laravel. Nyedhiyakake sakumpulan prentah sing migunani kanggo digunakake nalika ngembangake aplikasi sampeyan. Iku mimpin dening komponen kuat Symfony Console.

Kanggo ndeleng dhaptar kabeh printah Artisan sing kasedhiya, sampeyan bisa nggunakake printah dhaptar:

php artisan list

Kabeh prentah teka kanthi katrangan ringkes babagan argumen lan pilihan. Iki ditampilake ing layar "pitulung". Kanggo nampilake layar bantuan, mung ndhisiki jeneng printah kanthi "help" kaya sing ditampilake:

php artisan help migrate

Migration

Migrasi minangka proses manajemen basis data kanthi nulis PHP SQL. Nyedhiyani cara kanggo nambah kontrol versi menyang database. 

Kanggo nggawe migrasi, mung mbukak printah ing ngisor iki:

php artisan make:migration create_student_records

Iki nggawe file migrasi. Ing editor teks, bukak file sing lagi wae digawe ing folder kasebut 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');
    }
}

Kode kasebut minangka kelas kanthi jeneng sing padha 'create student records', lan duwe rong cara: munggah lan mudhun. Cara munggah kudu nggawe owahan ing database; dadi saben sampeyan migrasi database, sembarang kode ing cara munggah bakal kaleksanan. Ing tangan liyane, cara mudhun kudu muter maneh owah-owahan database; supaya saben sampeyan mbukak ing rollback della migration, cara mudhun kudu mbatalake apa cara munggah. Ing njero metode up ana pembangun skema sing digunakake kanggo nggawe lan ngapusi tabel. Apa sing kedadeyan yen sampeyan mbatalake sawetara migrasi? Sampeyan mung kudu ngetrapake perintah ing ngisor iki:

php artisan migrate:rollback

Lan dheweke bakal ngumpulake sing pungkasan migration kang wis kaleksanan. Uga, sampeyan bisa mulihake basis data kanthi mbukak:

php artisan migrate:reset

Iki bakal mbatalake kabeh migrasi sampeyan.

Defimodel saka Eloquent

Sawise migrasi database rampung, proses sabanjure yaiku seedingEloquent rawuh menyang muter wiwit ing seeding nglebokake cathetan menyang database kita. Dadi, sampeyan kudu nggawe template sadurunge ngisi basis data. Saben tabel database duwe model sing cocog sing digunakake kanggo sesambungan karo tabel kasebut. Cithakan ngidini sampeyan takon data ing tabel, uga nglebokake cathetan anyar menyang tabel. Cara paling gampang kanggo instantiate model yaiku nggunakake printah ing ngisor iki:

php artisan make:model Student
Conto cithakan kapacak ing ngisor iki Student, sing bisa digunakake kanggo njupuk lan nyimpen informasi saka tabel database siswa:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Nalika sampeyan generate model lan ing wektu sing padha pengin generate migrasi database, sampeyan bisa nggunakake pilihan –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Penyemai

Sakabèhé seeder minangka kumpulan kelas khusus sing ngidini kita ngisi basis data bola-bali kanthi data sing padha. Kita nindakake printah ing ngisor iki:

php artisan make:seeder StudentsRecordSeeder

Ing editor teks, ing folder wiji, bukak file sing mentas digawe kanthi jeneng file: StudentsRecordSeeder.php. Nalika sampeyan bisa ndeleng iki mung kelas banget prasaja karo siji cara disebut run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Kode mung pambungkus sak kelas printah console, khusus dibangun kanggo bantuan karo tugas saka seeding. Owahi kode banjur simpen.

newsletter inovasi
Aja kantun warta paling penting babagan inovasi. Mlebu kanggo nampa wong-wong mau liwat email.
public function run()
{
    echo 'Seeding!';
}

Lan pindhah menyang terminal:

php artisan db:seed --class=StudentsRecordSeeder

Saiki sampeyan bisa ngisi tabel kanthi sawetara entri lan mbukak:

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

Kene sampeyan bisa tetep mbusak, nambah, ngowahi entri ing DB, banjur mulihake karo printah prasaja.

CRUD karo Laravel Eloquent

Operasi CRUD karo Laravel Eloquent object-relational mapper (ORM) nggampangake pangembang Laravel nggarap macem-macem database. Iki nindakake operasi nggawe, maca, nganyari, lan mbusak (CRUD), lan model obyek peta menyang tabel database. Ngalahake kabeh interaksi database sing dibutuhake kanggo operasi CRUD.

Nggawe cathetan

Sampeyan bisa nggunakake :: cara nggawe kanggo masang rekaman anyar menyang database.

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

Saliyane cara nggawe prasaja sing dituduhake ing ndhuwur, sampeyan uga bisa nggawe obyek anyar lan menehi atribut sing beda. Banjur, sampeyan bisa nelpon fungsi nyimpen () lan mbukak kode. Metode kaya firstOrCreate() utawa firstOrNew() minangka pilihan liyane kanggo nggawe rekaman. Iki bakal ngidini sampeyan nemokake siswa kanthi atribut tartamtu; yen siswa ora ketemu, sampeyan bakal nggawe ing database utawa instantiate conto anyar.

Cathetan maca

Nggunakake Eloquent ORM, sampeyan bisa nemokake cathetan ing database. Pitakonan mung dibangun lan nawakake aliran sing lancar. Kanggo nggawe statement::where, sampeyan bakal nggunakake cara get() Lan first(). Metode first() mung bakal ngasilake siji rekaman, nalika cara get() bakal ngasilake rekaman sing bisa diulang. Uga, cara find() bisa digunakake karo Uploaded tombol utami, kang bakal ngasilake koleksi rekaman cocog. Ing ngisor iki sawetara conto:

$student = Students::all();

Kode iki entuk kabeh siswa. Nalika kode ing ngisor iki nemokake siswa tartamtu kanthi ID:

$murid = Siswa:: golek (1);

Uga, kaya sing kapacak ing ngisor iki, kode kasebut nggambarake nggoleki siswa adhedhasar atribut tartamtu.

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

Kanggo metode get(), kode iki nuduhake carane golek siswa sing tingkat ndhuwur 5.

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

Nganyari cathetan nggunakake Eloquent mung kaya prasaja. Kanggo nganyari rekaman, golek rekaman sing pengin dianyari, sunting atribut lan simpen. Contone, kanggo ngganti tingkat kelas siswa John Doe dadi 5, goleki siswa dhisik banjur tindakake metode simpen.

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

Cara nyimpen uga bisa digunakake kanggo nganyari model sing wis ana ing database.

Mbusak cathetan

Eloquent gumunggung proses nganyari rekaman sing gampang, nanging nduweni crita sing padha karo pambusakan. Ana rong pilihan: tarik-metu cathetan lan nglakokaké cara mbusak, utawa mung nggunakake cara numpes. Kanggo nemokake lan mbusak rekaman, jalanake printah ing ngisor iki:

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

Kanggo mbusak rekaman lan pirang-pirang rekaman, prentah ditindakake:

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

Elinga yen paramèter karusakan mung minangka kunci utama, ora kaya cara mbusak sing bisa nampa kolom database.

Kanggo nemokake lan mbusak kabeh siswa ing ndhuwur level 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
newsletter inovasi
Aja kantun warta paling penting babagan inovasi. Mlebu kanggo nampa wong-wong mau liwat email.

Artikel anyar

Regulator antitrust Inggris mundhakaken weker BigTech liwat GenAI

CMA UK wis ngetokake bebaya babagan prilaku Big Tech ing pasar intelijen buatan. Ana…

18 April 2024

Casa Green: revolusi energi kanggo masa depan sing lestari ing Italia

Keputusan "Case Green", sing dirumusake dening Uni Eropa kanggo ningkatake efisiensi energi bangunan, wis rampung proses legislatif kanthi…

18 April 2024

E-commerce ing Italia kanthi + 27% miturut Laporan anyar dening Casaleggio Associati

Laporan taunan Casaleggio Associati babagan E-commerce ing Italia ditampilake. Laporan kanthi irah-irahan "AI-Commerce: tapel wates E-dagang kanthi Kecerdasan Buatan".…

17 April 2024

Ide Sarwa: Bandalux nampilake Airpure®, tirai sing ngresiki hawa

Asil inovasi teknologi sing terus-terusan lan komitmen kanggo lingkungan lan kesejahteraan masarakat. Bandalux nampilake Airpure®, tenda…

12 April 2024