Kali ini kita akan belajar cara sederhana membuat aplikasi CRUD (create-read-update-delete) menggunakan Laravel. Sebagai contoh kasus kita akan membuat daftar koleksi buku pada sebuah perpustakaan. Jadi, CRUD di sini akan mencoba mengelola data buku, menambah, membacanya, mengedit, serta menghapus data buku tersebut. Baiklah kita mulai secara runut, dari membuat aplikasi Laravel versi 5.5.
Pertama-tama, mari kita buat aplikasi dengan salah satu cara seperti dijelaskan pada artikel "Menginstal Laravel dan Menjalankannya." Saya menggunakan cara berikut:
composer create-project laravel/laravel --prefer-dist crudbuku
Setelah terinstal, lakukan pengatuan basis data, misalnya seperti contoh berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crudbuku
DB_USERNAME=root
DB_PASSWORD=toor
Untuk nilai pengaturan yang dicetak tebal pada contoh di atas, silakan Anda sesuaikan dengan keinginan Anda. Setelah itu jangan lupa untuk membuat basis data sesuai dengan isian DB_DATABASE. Selanjutnya kita buat tabel dengan migrasi.
php artisan make:migration create_table_books --create=books
Lalu modifikasi pada file migrasi tersebut di bagian fungsi up() sebagai berikut:
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('judul');
$table->text('keterangan');
$table->timestamps();
});
}
Buat seeder untuk pengguna aplikasi. Buka file
database/seeds/DatabaseSeeder.php
dan modifikasi pada bagian fungsi run() seperti berikut:public function run()
{
DB::table('users')->insert([
'name' => 'belakode',
'email' => 'bela@kode.com',
'password' => bcrypt('secret'),
]);
}
Selanjutnya kita jalankan migrasi
php artisan migrate
Dan menjalankan seeder
php artisan db:seed
Kita membutuhkan user_id untuk tabel buku yang kita ambil dari user_id pengguna yang sedang login. Kita buat antarmuka login dengan perintah berikut:
php artisan make:auth
Selanjutnya kita buat model dan controllernya
php artisan make:model Buku
php artisan make:controller BukuController
Pada model (
app/Buku.php
), silakan buat kode seperti berikut:class Buku extends Model
{
protected $fillable = ['user_id', 'judul', 'keterangan'];
public function simpanBuku($data)
{
$this->user_id = auth()->user()->id;
$this->judul = $data['judul'];
$this->keterangan = $data['keterangan'];
$this->save();
return 1;
}
public function updateBuku($data)
{
$buku = $this->find($data['id']);
$buku->user_id = auth()->user()->id;
$buku->judul = $data['judul'];
$buku->keterangan = $data['keterangan'];
$buku->save();
return 1;
}
}
Dan pada file kontrollernya (
app/Http/Controllers/BukuController.php
) isinya sebagai berikut:class BukuController extends Controller
{
public function index()
{
$buku2 = Buku::where('user_id', auth()->user()->id)->get();
return view('home',compact('buku2'));
}
public function create()
{
return view('createbuku');
}
public function store(Request $request)
{
$buku = new Buku();
$data = $this->validate($request, [
'keterangan'=>'required',
'judul'=> 'required'
]);
$buku->simpanBuku($data);
return redirect('/home')->with('success', 'Data buku sudah dibuat!');
}
public function edit($id)
{
$buku = Buku::where('user_id', auth()->user()->id)
->where('id', $id)
->first();
return view('editbuku', compact('buku', 'id'));
}
public function update(Request $request, $id)
{
$buku = new Buku();
$data = $this->validate($request, [
'judul'=> 'required',
'keterangan'=>'required',
]);
$data['id'] = $id;
$buku->updateBuku($data);
return redirect('/home')->with('success', 'Data buku berhasil diupdate!!');
}
public function destroy($id)
{
$buku = Buku::find($id);
$buku->delete();
return redirect('/home')->with('success', 'Buku berhasil dihapus!!');
}
File kontroller di atas membutuhkan beberapa file view, yaitu home, createbuku, dan editbuku.
File home (resources/views/home.blade.php), modifikasilah menjadi seperti berikut:
File createbuku (resources/views/createbuku.blade.php)
File editbuku (resources/views/editbuku.blade.php)
Terakhir, kita juga harus membuat route pada file routes/web.php.
//READ data
Route::get('/home', 'BukuController@index')->name('home');
//CREATE
Route::get('/create/buku','BukuController@create');
Route::post('/create/buku','BukuController@store');
//UPDATE
Route::get('/edit/buku/{id}','BukuController@edit');
Route::post('/edit/buku/{id}','BukuController@update');
//DELETE
Route::delete('/delete/buku/{id}','BukuController@destroy');
Hasilnya akan menjadi seperti ini:
dan
Demikian, tutorial singkat membuat CRUD, semoga bermanfaat!
Anda dapat mengunduh hasil jadi praktik kita ini di sini.
Tidak ada komentar:
Posting Komentar