Laravel - Bekerja Dengan Database
Hai sana, para pengembang bersemangat! Saya senang untuk membawa Anda dalam perjalanan menarik melalui dunia yang menarik Laravel dan manajemen database. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya dapat menjamin Anda bahwa menguasai operasi database adalah seperti belajar menunggang sepeda - mungkin terlihat menakutkan pada awalnya, tapi setelah Anda menguasainya, Anda akan terbang melalui proyek Anda dengan mudah!
Menghubungkan ke Database
Ayo mulai dari dasar - menghubungkan ke database. PERTimbangkan ini sebagai pengenalan aplikasi Laravel Anda ke teman baru terbaiknya, database. Mereka perlu saling kenal sebelum mereka dapat mulai bekerja bersama!
Konfigurasi
Pertama-tama, kita perlu memberitahu Laravel di mana mencari database kita dan bagaimana mengaksesnya. Laravel membuat ini sangat mudah dengan file konfigurasinya. Buka file .env
di root proyek Anda, dan Anda akan melihat sesuatu seperti ini:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Baris-baris ini seperti memberikan Laravel peta ke database Anda. Mari kitauraikan:
-
DB_CONNECTION
: Ini adalah jenis database yang Anda gunakan. MySQL adalah default, tetapi Laravel mendukung yang lain pula. -
DB_HOST
: Di mana database Anda berada. Untuk pengembangan lokal, biasanya komputer Anda sendiri (127.0.0.1). -
DB_PORT
: Nomor pintu yang Laravel harus mengetuk untuk mengakses database. -
DB_DATABASE
: Nama database Anda. -
DB_USERNAME
danDB_PASSWORD
: Salam rahasia Anda untuk masuk ke database.
Pemeriksaan Koneksi
Sekarang kita telah memperkenalkan Laravel ke database kita, mari kita pastikan mereka berpacangan. Kita dapat melakukan ini dengan perintah artisan sederhana:
php artisan tinker
Ini membuka shell interaktif Laravel. Sekarang, mari kita mencoba untuk menghubungkan:
DB::connection()->getPdo();
Jika Anda melihat string panjang angka dan huruf, selamat! Aplikasi Laravel Anda dan database sekarang adalah teman terbaik.
Membuat Tabel
Sekarang kita telah terhubung, itu waktunya untuk membuat beberapa tabel. Dalam dunia database, tabel adalah seperti spreadsheet tempat kita menyimpan data.
Migrasi
Laravel menggunakan sesuatu yang disebut "migrasi" untuk membuat dan memodifikasi tabel. PERTimbangkan migrasi seperti mesin waktu untuk database Anda - mereka memungkinkan Anda untuk bergerak ke belakang dan ke depan dalam sejarah database Anda.
Untuk membuat migrasi, gunakan perintah artisan ini:
php artisan make:migration create_users_table
Ini membuat file baru di folder database/migrations
. Buka file ini, dan Anda akan melihat sesuatu seperti ini:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Ini seperti blueprint untuk tabel Anda. Mari kitauraikan:
-
$table->id()
: Membuat kolom ID auto-incrementing. -
$table->string('name')
: Membuat kolom untuk menyimpan nama. -
$table->string('email')->unique()
: Membuat kolom email unik. -
$table->timestamp('email_verified_at')->nullable()
: Membuat kolom timestamp yang optional. -
$table->string('password')
: Membuat kolom untuk menyimpan password. -
$table->rememberToken()
: Membuat kolom untuk menyimpan token "remember me". -
$table->timestamps()
: Membuat kolomcreated_at
danupdated_at
.
Untuk benar-benar membuat tabel ini di database Anda, jalankan:
php artisan migrate
Dan voila! Tabel Anda telah diciptakan.
Menyisipkan Data
Sekarang kita memiliki tabel, mari kita masukkan beberapa data ke dalamnya. Ada beberapa cara untuk melakukan ini di Laravel.
Menggunakan Eloquent
Eloquent adalah ORM (Object-Relational Mapping) bawaan Laravel. Itu seperti penerjemah antara kode PHP Anda dan database Anda. Berikut adalah cara Anda dapat menggunakannya untuk menyisipkan data:
use App\Models\User;
$user = new User;
$user->name = 'John Doe';
$user->email = '[email protected]';
$user->password = bcrypt('password');
$user->save();
Dalam contoh ini, kita membuat objek User baru, mengatur propertinya, dan kemudian menyimpannya ke database. Itu begitu mudah!
Menggunakan Query Builder
Jika Anda lebih suka pendekatan yang mirip SQL, Anda dapat menggunakan Query Builder:
DB::table('users')->insert([
'name' => 'John Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);
Metode ini lebih langsung - kita mengatakan kepada Laravel untuk menyisipkan ke dalam tabel mana dan menggunakan data apa.
Mengambil Data
Sekarang kita telah memasukkan data ke dalam database, mari kita belajar bagaimana mengambilnya kembali.
Menggunakan Eloquent
Untuk mengambil semua pengguna:
$users = User::all();
Untuk menemukan pengguna tertentu:
$user = User::find(1);
Untuk mengambil pengguna dengan kondisi:
$users = User::where('name', 'John Doe')->get();
Menggunakan Query Builder
Untuk mengambil semua pengguna:
$users = DB::table('users')->get();
Untuk menemukan pengguna tertentu:
$user = DB::table('users')->where('id', 1)->first();
Untuk mengambil pengguna dengan kondisi:
$users = DB::table('users')->where('name', 'John Doe')->get();
Memperbarui Data
Memperbarui data sama mudahnya seperti menyisipkan itu. Mari kita lihat beberapa metode.
Menggunakan Eloquent
$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();
Menggunakan Query Builder
DB::table('users')
->where('id', 1)
->update(['name' => 'Jane Doe']);
Menghapus Data
Akhirnya, mari kita belajar bagaimana menghapus data dari database kita.
Menggunakan Eloquent
$user = User::find(1);
$user->delete();
Menggunakan Query Builder
DB::table('users')->where('id', 1)->delete();
Dan itu saja! Anda telah belajar dasar-dasar bekerja dengan database di Laravel. Ingat, latihan membuat sempurna. Jangan takut untuk mencoba dan mencoba query yang berbeda. Sebelum Anda sadar, Anda akan menjadi ahli database!
Berikut adalah tabel rujukan cepat metode yang kita pelajari:
Operasi | Eloquent | Query Builder |
---|---|---|
Menyisipkan | $user = new User; $user->save(); |
DB::table('users')->insert([]); |
Mengambil Semua | User::all(); |
DB::table('users')->get(); |
Mengambil Satu | User::find(1); |
DB::table('users')->where('id', 1)->first(); |
Memperbarui | $user->save(); |
DB::table('users')->where('id', 1)->update([]); |
Menghapus | $user->delete(); |
DB::table('users')->where('id', 1)->delete(); |
Selamat coding, para master database masa depan!
Credits: Image by storyset