laravel

Tutorial ORM Laravel Eloquent

Tutorial ORM Laravel Eloquent
Eloquent ORM (Object Relation Mapper) mudah digunakan untuk pengguna yang tahu bagaimana menggunakan objek dalam PHP. ORM adalah ciri penting kerangka Laravel, yang dianggap sebagai ciri Laravel yang kuat dan mahal. ORM berfungsi dengan objek pangkalan data dan digunakan untuk menjalin hubungan dengan jadual pangkalan data. Setiap jadual pangkalan data dipetakan dengan model fasih tertentu. Objek model mengandungi pelbagai kaedah untuk mengambil dan mengemas kini data dari jadual pangkalan data. ORM yang fasih dapat digunakan dengan pelbagai pangkalan data dengan menerapkan Kaedah Aktif. Ciri ini menjadikan tugas yang berkaitan dengan pangkalan data, seperti menentukan hubungan, lebih mudah dengan menentukan jadual pangkalan data. Tutorial ini menerangkan cara menerapkan Laravel Eloquent ORM dalam projek Laravel anda.

Prasyarat

Sebelum memulakan tutorial ini, anda mesti melakukan tugas berikut:

  1. Pasang salinan baru projek Laravel
  2. Buat sambungan pangkalan data

Buat Jadual

Untuk menyelesaikan langkah-langkah tutorial, anda mesti membuat dua jadual dalam pangkalan data. Ini adalah jadual pengeluar dan jadual produk. Hubungan antara dua jadual ini masing-masing akan menjadi satu hingga banyak. Jalankan arahan berikut untuk membuat fail migrasi untuk membuat struktur pengeluar meja.

$ php artisan make: migrate create_manufacturer_table

Buka fail migrasi dari pangkalan data \ penghijrahan folder dan ubah suai ke atas () kaedah dengan kod berikut. Jadual akan mengandungi enam bidang: ID, nama, alamat, telefon, create_at, dan updated_at.

fungsi awam meningkat ()

Skema :: create ('pengeluar', fungsi (Blueprint $ table)
$ table-> id ();
$ table-> string ('name') -> unik ();
$ table-> teks ('alamat');
$ table-> string ('phone');
$ table-> cap masa ();
);

Jalankan arahan berikut untuk membuat fail migrasi untuk membuat struktur produk meja.

$ php artisan make: migrate create_product_table

Buka fail migrasi dari pangkalan data \ penghijrahan folder dan ubah suai ke atas () kaedah dengan kod berikut. Jadual akan mengandungi tujuh medan: ID, nama, harga, pengeluar_id, create_at, dan updated_at. Di sini, manufacturing_id adalah kunci asing untuk produk meja.

fungsi awam meningkat ()

Skema :: create ('produk', fungsi (Blueprint $ table)
$ table-> id ();
$ table-> string ('name') -> unik ();
$ table-> perpuluhan ('harga', 10, 2);
$ table-> bigInteger ('factory_id') -> tidak ditandatangani ();
$ table-> asing ('factory_id') -> rujukan ('id') -> on ('pengeluar');
$ table-> cap masa ();
);

Jalankan arahan migrasi berikut untuk membuat jadual dalam pangkalan data.

$ php artisan berhijrah

Buat Model

Anda juga mesti membuat dua model, yang dinamakan Pengilang dan Produk, untuk jadual yang dibuat sebelumnya. Jalankan arahan berikut untuk membuat Pengilang model.

$ php artisan make: model Pengilang

Buka model dari aplikasi folder dan ubah kod dengan kod berikut. $ boleh diisi digunakan untuk menentukan bidang wajib pembuatan meja. The produk () kaedah digunakan untuk menetapkan jenis hubungan dengan produk meja.

Aplikasi ruang nama;
gunakan Illuminate \ Database \ Eloquent \ Model;
pengeluar kelas memperluaskan Model

dilindungi $ isi =
'nama', 'alamat', 'telefon',
];
produk fungsi awam ()

pulangkan $ this-> hasMany ('App \ Product');

Jalankan arahan berikut untuk membuat Produk model.

Buka model dari aplikasi folder dan ubah kod dengan kod berikut. $ boleh diisi digunakan untuk menentukan bidang wajib produk meja. The pengeluar () kaedah digunakan untuk menetapkan jenis hubungan dengan mengeluarkan meja.

$ php artisan make: model Produk
Aplikasi ruang nama;
gunakan Illuminate \ Database \ Eloquent \ Model;
Produk kelas meluaskan Model

dilindungi $ isi =
'nama', 'harga', 'pengilang_id'
];
pengeluar fungsi awam ()

kembalikan $ this-> belongTo ('App \ Manufacturer');

Buat Pengawal

Jalankan arahan berikut untuk dibuat ManuController dan ProductController.

$ php artisan make: pengendali ManuController
$ php artisan make: pengawal ProductController

Operasi CRUD menggunakan Eloquent ORM

Operasi CRUD ditunjukkan di bawah dengan terlebih dahulu menambahkan kaedah ke dua pengawal ini.

Memasukkan Data

Jadual Pengilang

Tambah Pengilang model di bahagian atas ManuController. Seterusnya, tambahkan kod berikut di dalam ManuController model untuk memasukkan dua rekod ke dalam mengeluarkan meja.

fungsi awam create_data ()

Pengilang :: buat ([
'name' => 'ABC Trade',
'address' => '34, Mirpur, Dhaka ',
'telefon' => '01878562323'
]);
Pengilang :: buat ([
'name' => 'Rahim Afroze',
'address' => '123, Dhanmondi, Dhaka',
'telefon' => '01878562900'
]);
echo "Data pengeluar dimasukkan";

Tambahkan laluan berikut di laluan \ web.php fail untuk melaksanakan buat_data () kaedah.

Laluan :: get ('manu', '[email dilindungi] _data');

Output berikut akan muncul setelah memasukkan URL di bawah pada penyemak imbas.

http: // localhost: 8000 / manu

Jadual Produk

Tambah Produk model di bahagian atas ProductController. Seterusnya, tambahkan kod berikut di dalam ProductController untuk memasukkan tiga rekod ke dalam produk meja.

indeks fungsi awam ()

Produk :: buat ([
'name' => 'TV 32 Inche',
'harga' => 10000,
'pengeluar_id' => 1
]);
Produk :: buat ([
'name' => 'Walton Fridge',
'harga' => 20000,
'pengeluar_id' => 1
]);
Produk :: buat ([
'name' => 'IPS 7832',
'harga' => 25000,
'pengeluar_id' => 2
]);
gema "Data produk dimasukkan";

Tambahkan laluan berikut di laluan \ web.php fail untuk melaksanakan indeks () kaedah.

Laluan :: get ('product', '[email protected]');

Output berikut akan muncul setelah memasukkan URL di bawah pada penyemak imbas.

http: // localhost: 8000 / produk

Pilih Data

Tambahkan kaedah berikut di dalam ManuController untuk mengambil semua rekod pembuatannyajadual dan rekod berkaitan produk meja.

fungsi awam select_data ()

$ pengeluar = Pengilang :: semua ();
foreach ($ pengeluar sebagai $ manu)
$ produk = Produk :: di mana ('factory_id', $ manu-> id) -> get ();
gema "Pengilang: $ manu-> nama
";
foreach ($ produk sebagai $ pro)

gema "

Nama Produk: $ pro-> nama

";
gema "

Harga Produk: $ pro-> harga


";


Tambahkan laluan berikut di laluan \ web.php fail untuk melaksanakan pilih_data () kaedah.

Laluan :: get ('product_detail', '[email dilindungi] _data');

Output berikut akan muncul setelah memasukkan URL di bawah pada penyemak imbas.

http: // localhost: 8000 / product_detail

Kemas kini Data

Tambahkan kaedah berikut di dalam ManuController untuk mengemas kini rekod produk jadual yang mengandungi ID nilai 2.

kemas kini fungsi awam_data ()

$ produk = Produk :: cari (2);
echo "Maklumat produk sebelum kemas kini:
";
gema "

Nama Produk: $ product-> nama

";
gema "

Harga Produk: $ produk-> harga


";
$ product-> name = 'Walton Blender';
$ produk-> harga = 1000;
$ produk-> jimat ();
echo "Maklumat produk selepas kemas kini:
";
gema "

Nama Produk: $ product-> nama

";
gema "

Harga Produk: $ produk-> harga


";

Tambahkan laluan berikut di laluan \ web.php fail untuk melaksanakan kemas kini_data () kaedah.

Laluan :: get ('update_data', '[email dilindungi] _data');

Output berikut akan muncul setelah memasukkan URL di bawah pada penyemak imbas.

http: // localhost: 8000 / kemas kini_data

Padamkan Data

Tambahkan kaedah berikut di dalam ManuController untuk memadam beberapa rekod dari produk jadual dan satu rekod dari pengeluar meja.

fungsi awam delete_data ()
// Padamkan beberapa data
Produk :: hancurkan ([1, 2]);
// Padamkan data tunggal
Pengilang :: memusnahkan (1);
echo "Data dihapuskan.";

Tambahkan laluan berikut di laluan \ web.php fail untuk melaksanakan delete_data () kaedah.

Laluan :: get ('delete_data', '[email dilindungi] _data');

Output berikut akan muncul setelah memasukkan URL di bawah pada penyemak imbas.

http: // localhost: 8000 / delete_data

Tutorial Video

Kesimpulannya

Tutorial ini menunjukkan kepada anda bagaimana membuat hubungan antara jadual dan bagaimana melaksanakan operasi CRUD menggunakan Eloquent ORM. Malah pengguna Laravel baru akan dapat memahami beberapa penggunaan asas Eloquent OPM setelah membaca tutorial ini.

Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...
Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...