Di dunia pemrograman, fitur Eloquent ORM tentu menjadi istilah yang tidak asing lagi. Pasalnya ia merupakan bagian dari Laravel, framework PHP yang open source.
Fitur tersebut memungkinkan adanya efisiensi dan kemudahan dalam interaksi pengguna dan database.
Hal ini menjadikan Eloquent ORM sangat bermanfaat dalam melakukan berbagai operasi basis data, seperti penyimpanan data, manipulasi data, dan lain sebagainya.
Untuk lebih memahami tentang penggunaan Eloquent ORM pada Laravel, simak penjelasan artikel berikut ini.
Apa Itu Eloquent ORM
Eloquent ORM adalah fitur dari Laravel yang memungkinkan developer untuk dapat menggunakan dan memanipulasi data yang ada di dalam database dengan PHP objects dan model terkait.
Sebagai Object-Relational Mapping (ORM) yang disediakan oleh Framework Laravel, Eloquent memiliki fungsi query SQL yang memungkinkan untuk mengelola data dalam database tanpa harus menuliskannya kembali secara manual.
ORM sendiri mengacu pada suatu metode pemrograman yang menghubungkan database relasional dengan kode pemrograman yang berorientasi sebagai objek.
Hal ini memungkinkan interaksi antara database dan objek menjadi mudah, sehingga developer dapat memanfaatkan kode saat bekerja alih-alih menulis SQL secara manual.
Model atau kode pemrograman yang berbentuk objek tersebut kemudian dipergunakan untuk melakukan operasi data seperti CRUD (Create, Read, Update, Delete) secara efisien dan mudah dalam database.
Baca Juga: Laravel vs Codeigniter: Pengertian, Fitur, dan Kelebihan
Keuntungan Penggunaan Eloquent ORM
Pada umumnya, penggunaan Eloquent ORM bermanfaat dalam menyederhanakan interaksi dalam database. Namun, ada beberapa keuntungan lainnya yang perlu Anda ketahui dalam hal ini.
- Pengurangan dalam penggunaan kode yang berulang-ulang untuk interaksi basis data
- Penyederhanaan kueri yang kompleks
- Konsistensi dan keamanan pada interaksi basis data yang terjaga
- Kemudahan dalam pengelolaan relasi antar basis data
Fungsi Eloquent ORM
- Kemudahan interaksi dengan database, yang memungkinkan operasi data menjadi lebih cepat dan efisien, seperti dalam menambahkan data, memperbarui data, dan menghapus data.
- Berintegrasi dengan pola desain MVC secara langsung, sehingga model Eloquent ORM dapat mewakili data dalam database dan mengelola logika bisnis dengan model sederhana agar view dan controller dapat fokus pada tugasnya masing-masing
- Relasi antar model, dimana Eloquent ORM pada Laravel menyediakan hubungan antar model yang mencakup one-to-one, one-to-many, many-to-one, dan many-to-many yang memungkinkan pengembang lebih mudah dalam menggunakan dan menambahkan data terkait antar model.
- Query builder, dimana fitur ini dapat dan tidak berorientasi pada model seperti Eloquent. Query builder juga cocok untuk membuat query yang lebih rumit dengan metode channing.
- Validasi data, dimana fitur ini digunakan untuk melakukan validasi data untuk memastikan keakuratannya sebelum akhirnya disimpan ke dalam basis data.
Penggunaan Eloquent ORM Pada Laravel
Sebelum memulai untuk membuat model dan migrasi yang akan merepresentasikan tabel dalam database, pastikan Anda telah menginstal Laravel dan melakukan konfigurasi proyek.
Membuat model Eloquent ORM
Tahap ini Anda akan membuat model yang digunakan untuk mewakili tabel dalam basis data dan membuat migrasi untuk datanya.
Jalankan perintah ini untuk membuat model Eloquent.
php artisan make:model NamaModel
Perintah tersebut akan membuat data NamaModel.php di database app/Models.
Lalu buka data NamaModel.php dan edit sesuai dengan kebutuhan Anda
Melakukan operasi data CRUD dengan Eloquent
Setelah model terbentuk, Anda dapat menggunakannya untuk mengoperasikan data dengan create, read, update, atau delete dalam database.
Contoh Create:
$user = new User;
$user ⤏ name = ‘Eve Dawn’;
$user ⤏ email = ‘[email protected]’;
$user ⤏ password = ‘password’;
$user ⤏ save( );
Contoh Read:
$user = User: : find(1); // mencari user dengan ID 1
// menampilkan semua user
$user = User: : all ( );
Contoh Update:
$user = User: : find (1);
$user ⤏ name = ‘Eve Dawn’;
$user ⤏ save ( );
Contoh Delete:
$user = User : : find (1)
$user ⤏ delete ( );
Hubungan Antar Model Eloquent ORM
Relasi antar model mengacu pada hubungan atau interaksi antar tabel di dalam basis data yang mencakup:
One-to-One
Adalah satu model yang dihubungkan dengan satu model lainnya.
Seperti ketika Anda memiliki tabel user dan profiles. Sehingga hubungan ini mengacu pada setiap user memiliki satu profil dan satu profil dimiliki satu user.
Langkah di model User dengan menambahkan metode ini:
public function profile()
{
return $this⤏hasOne (Profile::class);
}
# Method hasOne( ) di model User menjabarkan relasi one-to-one dengan model Profile.
Langkah model Profile yang menambahkan metode ini:
public function user()
{
return $this⤏belongsTo (User::class);
}
# Method belongsTo( ) di model Profile menjabarkan relasi belongs-to dengan model User.
Contoh penggunaannya one-to-one:
// Mendapatkan profil user
$user = User::find(1);
$profile = $user⤍profile;
// Menambahkan profil ke user
$user = User::find (1);
$profile = new profile;
$profile⤍name = ‘Eve Dawn’;
$user⤍profile()⤍save( );
One-to-Many
Adalah satu model yang dihubungkan dengan banyak model lainnya.
Seperti ketika Anda memiliki tabel users dan posts. Sehingga hubungan ini mengacu pada setiap user memiliki banyak posts dan setiap post hanya dimiliki satu user.
Langkah model User yang menambahkan metode ini:
public function posts()
{
return $this⤏hasMany (Post::class);
}
#Method hasMany( ) di model User menjabarkan relasi one-to-many dengan model Post.
Langkah Model Post yang menambahkan metode berikut:
public function user()
{
return this⤏belongsTo(User: : class);
}
#Method belongsTo( ) di model Post menjabarkan relasi belongs-to dengan model User.
Contoh penggunaan one-to-many:
// Mendapatkan semua post dari user
$user = User::find(1);
$profile = $user⤍posts;
// Menambahkan profil ke user
$user = User::find(1);
$post = new post;
$post⤍title = ‘My First Post’;
$user⤍posts()⤍save($post);
Many-to-Many
Adalah banyak model yang dihubungkan dengan banyak model lainnya.
Seperti ketika Anda memiliki tabel users dan roles. Sehingga hubungan ini mengacu pada setiap user dapat memiliki banyak roles dan setiap role dapat dimiliki banyak users.
Langkah membuat model pivot UserRole:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class UserRole extends Model
{
// Menentukan nama tabel
protected $table = ‘user_roles’;
// Menentukan kolom yang bisa diisi
protected $fillable = [
‘user_id’,
‘user_id’,
];
}
#Method UserROle digunakan sebagai model pivot untuk relasi many-to-many dengan model Post.
Lalu, langkah model User yang ditambahkan metode berikut:
public function roles()
{
return $this⤏belongsToMany (Role::class, ‘user_roles’);
}
Langkah model Role yang ditambahkan dengan metode berikut:
public function users()
{
return $this⤏belongsToMany (User::class, ‘user_roles’);
}
#Method belongToMany( ) di model User dan Role menjabarkan relasi many-to-many dengan model Role dan User.
Contoh penggunaan many-to-many:
// Mendapatkan semua roles dari user
$user = User::find(1);
$roles = $user⤍roles;
// Menambahkan role ke user
$user = User::find(1);
$role = Role
Kesimpulan
Eloquent ORM dalam Laravel memungkinkan developer mengelola operasi data dengan mudah tanpa harus menulis ulang manual query SQL.
Dengan fungsi-fungsi yang dapat dipergunakan untuk create, read, update, dan delete data dalam suatu website yang membutuhkan interaksi dengan basis data, ini tentu sangat memudahkan kinerja para pengembang.
Namun, jika Anda masih merasa kesulitan untuk mengoperasikannya untuk website, Anda dapat menggunakan layanan kami untuk membuat website.
Sekawan Media hadir dengan jasa pembuatan website yang telah dipercaya melayani lebih dari 100 proyek dari berbagai wilayah di Indonesia. Jika Anda berminat dengan jasa kami, silakan mengunjungi laman kontak kami!