Eloquent ORM

Eloquent ORM (Object-Relational Mapping) pada Laravel adalah cara untuk berinteraksi dengan database menggunakan model berbasis objek. Eloquent menyediakan antarmuka yang sederhana dan intuitif untuk melakukan operasi database, serta memungkinkan penge…


This content originally appeared on DEV Community and was authored by Muhammad Iqbal

Eloquent ORM (Object-Relational Mapping) pada Laravel adalah cara untuk berinteraksi dengan database menggunakan model berbasis objek. Eloquent menyediakan antarmuka yang sederhana dan intuitif untuk melakukan operasi database, serta memungkinkan pengembang untuk bekerja dengan database menggunakan sintaksis PHP yang lebih alami. Berikut adalah beberapa kegunaan utama dari Eloquent ORM pada Laravel:

A. Interaksi Database yang Intuitif:

  • Eloquent memungkinkan kamu untuk berinteraksi dengan tabel database seolah-olah mereka adalah objek PHP. Ini membuat kode lebih mudah dibaca dan dipahami.
   $user = User::find(1);
   echo $user->name;

B. Query Builder yang Kuat:

  • Eloquent menyediakan query builder yang kuat untuk membuat dan menjalankan query database dengan cara yang mudah dan elegan.
   $users = User::where('status', 'active')->get();

C. Relasi Antar Tabel:

  • Eloquent memudahkan definisi dan penggunaan relasi antar tabel, seperti one-to-one, one-to-many, many-to-many, dan polymorphic relations.
   // One-to-many relationship
   class User extends Model
   {
       public function posts()
       {
           return $this->hasMany(Post::class);
       }
   }

   $user = User::find(1);
   foreach ($user->posts as $post) {
       echo $post->title;
   }

D. Eager Loading:

  • Eloquent mendukung eager loading untuk menghindari masalah N+1 query dan meningkatkan performa aplikasi.
   $users = User::with('posts')->get();

E. Mass Assignment:

  • Eloquent memungkinkan mass assignment untuk membuat atau memperbarui model dengan array data.
   $user = User::create([
       'name' => 'John Doe',
       'email' => 'johndoe@example.com',
       'password' => bcrypt('password')
   ]);

F. Soft Deletes:

  • Eloquent mendukung soft deletes, memungkinkan kamu untuk "menghapus" model tanpa benar-benar menghapusnya dari database.
   use Illuminate\Database\Eloquent\SoftDeletes;

   class User extends Model
   {
       use SoftDeletes;
   }

   $user->delete(); // Model ini tidak dihapus, hanya ditandai sebagai terhapus

G. Accessors dan Mutators:

  • Eloquent memungkinkan penggunaan accessors dan mutators untuk memodifikasi nilai atribut model saat diambil atau diset.
   class User extends Model
   {
       public function getFullNameAttribute()
       {
           return "{$this->first_name} {$this->last_name}";
       }
   }

   $user = User::find(1);
   echo $user->full_name; // Mengakses full_name accessor

H. Event dan Observers:

  • Eloquent memungkinkan penggunaan event dan observers untuk menangani logika sebelum atau setelah operasi model tertentu.
   class UserObserver
   {
       public function creating(User $user)
       {
           // Logika sebelum membuat user
       }
   }

   User::observe(UserObserver::class);

Contoh Implementasi Eloquent ORM

Berikut adalah contoh lengkap dari penggunaan Eloquent ORM untuk mendefinisikan model, melakukan operasi database, dan menggunakan relasi:

A. Mendefinisikan Model:

   namespace App\Models;

   use Illuminate\Database\Eloquent\Model;

   class Post extends Model
   {
       protected $fillable = ['title', 'content', 'user_id'];
   }

B. Membuat dan Mengambil Data:

   // Membuat data baru
   $post = Post::create([
       'title' => 'Eloquent ORM',
       'content' => 'Belajar menggunakan Eloquent ORM di Laravel',
       'user_id' => 1
   ]);

   // Mengambil data
   $post = Post::find(1);
   echo $post->title;

C. Menggunakan Relasi:

   // Mendefinisikan relasi
   class User extends Model
   {
       public function posts()
       {
           return $this->hasMany(Post::class);
       }
   }

   // Mengambil data dengan relasi
   $user = User::with('posts')->find(1);
   foreach ($user->posts as $post) {
       echo $post->title;
   }

Kesimpulan

Eloquent ORM pada Laravel memudahkan pengembang untuk berinteraksi dengan database menggunakan model berbasis objek, menyediakan query builder yang kuat, mendukung berbagai jenis relasi antar tabel, dan memiliki fitur-fitur canggih seperti eager loading, mass assignment, soft deletes, accessors, mutators, event, dan observers. Dengan Eloquent, pengembangan aplikasi menjadi lebih cepat, efisien, dan mudah dipelihara.


This content originally appeared on DEV Community and was authored by Muhammad Iqbal


Print Share Comment Cite Upload Translate Updates
APA

Muhammad Iqbal | Sciencx (2024-08-02T22:46:11+00:00) Eloquent ORM. Retrieved from https://www.scien.cx/2024/08/02/eloquent-orm/

MLA
" » Eloquent ORM." Muhammad Iqbal | Sciencx - Friday August 2, 2024, https://www.scien.cx/2024/08/02/eloquent-orm/
HARVARD
Muhammad Iqbal | Sciencx Friday August 2, 2024 » Eloquent ORM., viewed ,<https://www.scien.cx/2024/08/02/eloquent-orm/>
VANCOUVER
Muhammad Iqbal | Sciencx - » Eloquent ORM. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/08/02/eloquent-orm/
CHICAGO
" » Eloquent ORM." Muhammad Iqbal | Sciencx - Accessed . https://www.scien.cx/2024/08/02/eloquent-orm/
IEEE
" » Eloquent ORM." Muhammad Iqbal | Sciencx [Online]. Available: https://www.scien.cx/2024/08/02/eloquent-orm/. [Accessed: ]
rf:citation
» Eloquent ORM | Muhammad Iqbal | Sciencx | https://www.scien.cx/2024/08/02/eloquent-orm/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.