Prasyarat
Sebelum memulai tutorial ini, Anda harus melakukan tugas-tugas berikut:
- Instal salinan baru dari proyek Laravel
- Buat koneksi database
Buat Tabel
Untuk menyelesaikan langkah-langkah tutorial, Anda harus membuat dua tabel di database. Ini adalah tabel pabrikan dan tabel produk. Hubungan antara dua tabel ini akan menjadi satu ke banyak, masing-masing. Jalankan perintah berikut untuk membuat file migrasi untuk membuat struktur produsen meja.
$ php artisan make:migration create_manufacturer_tableBuka file migrasi dari basis data\migrasi folder dan ubah naik() metode dengan kode berikut. Tabel akan berisi enam bidang: ID, nama, alamat, telepon, create_at, dan updated_at.
fungsi publik ke atas()Schema::create('manufacturers', function (Blueprint $table)
$tabel->id();
$tabel->string('nama')->unik();
$tabel->teks('alamat');
$table->string('telepon');
$tabel->stempel waktu();
);
Jalankan perintah berikut untuk membuat file migrasi untuk membuat struktur produk meja.
$ php artisan make:migration create_product_tableBuka file migrasi dari basis data\migrasi folder dan ubah naik() metode dengan kode berikut. Tabel akan berisi tujuh bidang: ID, nama, harga, manufacturer_id, create_at, dan updated_at. Di sini, manufacturing_id adalah kunci asing untuk produk meja.
fungsi publik ke atas()Schema::create('products', function (Blueprint $table)
$tabel->id();
$tabel->string('nama')->unik();
$tabel->desimal('harga', 10, 2);
$table->bigInteger('manufacturer_id')->unsigned();
$table->foreign('manufacturer_id')->references('id')->on('manufacturers');
$tabel->stempel waktu();
);
Jalankan perintah migrasi berikut untuk membuat tabel di database.
$ php artisan bermigrasiBuat Model
Anda juga harus membuat dua model, bernama Pabrikan dan Produk, untuk tabel yang dibuat sebelumnya. Jalankan perintah berikut untuk membuat Pabrikan model.
$ php artisan make:model ProdusenBuka model dari aplikasi folder dan ubah kode dengan kode berikut:. $bisa diisi digunakan untuk mendefinisikan bidang wajib dari pembuatan meja. Itu produk() metode yang digunakan untuk mengatur tipe relasi dengan produk meja.
Aplikasi ruang nama;gunakan Illuminate\Database\Eloquent\Model;
kelas Produsen memperluas Model
dilindungi $dapat diisi = [
'nama', 'alamat', 'telepon',
];
produk fungsi publik()
return $this->hasMany('App\Product');
Jalankan perintah berikut untuk membuat Produk model.
Buka model dari aplikasi folder dan ubah kode dengan kode berikut:. $bisa diisi digunakan untuk mendefinisikan bidang wajib dari produk meja. Itu produsen() metode yang digunakan untuk mengatur tipe relasi dengan manufaktur meja.
$ php artisan make:model ProdukAplikasi ruang nama;
gunakan Illuminate\Database\Eloquent\Model;
kelas Produk memperluas Model
dilindungi $dapat diisi = [
'nama', 'harga','produsen_id'
];
produsen fungsi publik()
return $this->belongsTo('App\Manufacturer');
Buat Pengendali
Jalankan perintah berikut untuk membuat ManuController Manu dan Pengontrol Produk.
$ php artisan make:controller ManuController$ php artisan make:controller ProductController
Operasi CRUD menggunakan Eloquent ORM
Operasi CRUD ditunjukkan di bawah ini dengan terlebih dahulu menambahkan metode ke dua pengontrol ini.
Memasukkan Data
Tabel Produsen
Tambahkan Pabrikan model di atas ManuController Manu. Selanjutnya, tambahkan kode berikut di dalam ManuController Manu model untuk memasukkan dua catatan ke dalam manufaktur meja.
fungsi publik buat_data()Pabrikan::buat([
'nama' => 'Perdagangan ABC',
'alamat' => '34, Mirpur, Dhaka',
'telepon' => '01878562323'
]);
Pabrikan::buat([
'name' => 'Rahim Afroze',
'alamat' => '123, Dhanmondi, Dhaka',
'telepon' => '01878562900'
]);
echo "Data pabrikan dimasukkan";
Tambahkan rute berikut di rute\web.php file untuk mengeksekusi buat_data() metode.
Route::get('manu', '[email protected]_data');Output berikut akan muncul setelah memasukkan URL di bawah ini di browser.
http://localhost:8000/manu
Tabel Produk
Tambahkan Produk model di atas Pengontrol Produk. Selanjutnya, tambahkan kode berikut di dalam Pengontrol Produk untuk memasukkan tiga catatan ke dalam produk meja.
indeks fungsi publik()Produk::buat([
'name' => 'TV 32 Inci',
'harga' => 10000,
'produsen_id' => 1
]);
Produk::buat([
'name' => 'Kulkas Walton',
'harga' => 20000,
'produsen_id' => 1
]);
Produk::buat([
'nama' => 'IPS 7832',
'harga' => 25000,
'produsen_id' => 2
]);
echo "Data produk dimasukkan";
Tambahkan rute berikut di rute\web.php file untuk mengeksekusi indeks() metode.
Rute::get('produk', '[dilindungi email]');Output berikut akan muncul setelah memasukkan URL di bawah ini di browser.
http://localhost:8000/produk
Pilih Data
Tambahkan metode berikut di dalam ManuController Manu untuk mengambil semua catatan dari pembuatans tabel dan catatan terkait dari produk meja.
fungsi publik pilih_data()$manufacturers= Pabrikan::semua();
foreach ($produsen sebagai $manu)
$produk= Produk::where('manufacturer_id', $manu->id)->get();
gema "Pabrikan: $manu->nama
";
foreach ($produk sebagai $pro)
gema "
Nama Produk:$pro->nama
";gema "
Harga Produk:$pro->harga
";
Tambahkan rute berikut di rute\web.php file untuk mengeksekusi pilih_data() metode.
Route::get('product_detail', '[email protected]_data');Output berikut akan muncul setelah memasukkan URL di bawah ini di browser.
http://localhost:8000/product_detail
Perbaharui data
Tambahkan metode berikut di dalam ManuController Manu untuk memperbarui catatan produk tabel yang berisi Indo nilai 2.
fungsi publik update_data()$produk= Produk::temukan(2);
echo "Detail produk sebelum update:
";
gema "
Nama Produk:$produk->nama
";gema "
Harga Produk:$produk->harga
";
$produk->nama = 'Walton Blender';
$produk->harga = 1000;
$produk->simpan();
echo "Detail produk setelah pembaruan:
";
gema "
Nama Produk:$produk->nama
";gema "
Harga Produk:$produk->harga
";
Tambahkan rute berikut di rute\web.php file untuk mengeksekusi perbaharui data() metode.
Route::get('update_data', '[email protected]_data');Output berikut akan muncul setelah memasukkan URL di bawah ini di browser.
http://localhost:8000/update_data
Hapus Data
Tambahkan metode berikut di dalam ManuController Manu untuk menghapus beberapa catatan dari produk tabel dan satu catatan dari produsen meja.
fungsi publik delete_data()//Hapus banyak data
Produk::hancurkan([1, 2]);
//Hapus satu data
Pabrikan::hancurkan(1);
echo "Data dihapus.";
Tambahkan rute berikut di rute\web.php file untuk mengeksekusi hapus_data() metode.
Rute::get('delete_data', '[email protected]_data');Output berikut akan muncul setelah memasukkan URL di bawah ini di browser.
http://localhost:8000/delete_data
Video tutorial
Kesimpulan
Tutorial ini menunjukkan cara membuat hubungan antar tabel dan cara mengimplementasikan operasi CRUD menggunakan Eloquent ORM. Bahkan pengguna Laravel baru akan dapat memahami beberapa penggunaan dasar Eloquent OPM setelah membaca tutorial ini.