Dokumen ini memberikan instruksi langkah demi langkah untuk menghubungkan view Blade Laravel ke database MySQL menggunakan konsep MVC. Langkah-langkahnya meliputi membuat proyek dan database, mengatur koneksi database, membuat controller dan model, menambahkan data ke database, membuat layout dan view untuk menampilkan daftar buku, serta mengujicobanya.
How to connect laravel 5.1 blade view to database using mvc concept
1. HOW TO CONNECT LARAVEL 5.1 BLADE VIEW TO
DATABASE USING MVC CONCEPT
( Bagaimana Menghubungkan Laravel 5.1 Blade View Ke Database Menggunakan Konsep MVC )
Pada akhir tutorial ini , kita dapat membuat aplikasi dasar dalam Laravel 5 dengan MYSQL di
mana kita bisa menampilkan data buku pada.
1. Buatlah Projek pustaka terlebih dahulu
Sebelum membuat projek baru pastikan kita telah memasang composer laravel terlebih
dahulu. Masuklah ke dalam command line, lalu tukar direktorinya, kita bisa memakai
direktori Xampp atau pun Wamp, jika xampp, cd c:xampphtdocs jika wamp cd
c:wampwww dan ketikkan perintah berikut ini.
composer create-project laravel/laravel pustaka --prefer-dist
Untuk proses instalasi silahkan tunggu sekitar 5 menit, jika koneksi internet yang dimiliki
lancer.
2. Silahkan Cobakan Projek Pustaka
Ketikkan perintah berikut pada webrowser, dan pastikan xampp ataupun wamp sudah di
jalankan.
http://localhost/pustaka/public/
2. 3. Buatlah database untuk pustaka
Silahkan gunakan DBMS favorite anda untuk MYSQL, database yg dibuat adalah
pustaka, dan tablenya adalah bukus, liat gambar dibawah ini untuk lebih jelas fieldnya
4. Setting database untuk Pustaka
Berikut adalah salah satu perubahan terbesar dalam laravel 5 untuk keamanan ( aplikasi
dan database) masuk ke pustaka/ .env dan ubahlah konfigurasi seperti ditunjukkan seperti
berikut :
File .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=McoHy5Ig9V2ZMZwUW1pAS2dG4ATnIhXr
DB_HOST=localhost
DB_DATABASE=pustaka
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
3. 5. Buatlah Bookcontrolleruntuk Pustaka
Klik kanan pada projek kita lalu pilihlah use composer here
Dan masukkan perintah dibawah ini.
php artisan make:controller BookController
Pastikan kelas baru diciptakan di pustaka/app/ Http/Controllersp
File BookController.php
<?php
namespace AppHttpControllers;
use AppBuku;
use AppHttpRequests;
use AppHttpControllersController;
use IlluminateHttpRequest;
class BookController extends Controller
{
//
public function index()
{
$books=Buku::all();
return view('books.index',compact('books'));
}
}
4. 6. Buat model untuk Buku
Pada command line ketikkan perintah berikut
php artisan make:model Buku
Class baru telah tercipta pada bookstore/app
File Buku.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Buku extends Model
{
//
}
7. Install Form dan Html Facades
Untuk menggunakan Form dan Html fasad di laravel 5 harus menginstalkan terlebih dahulu
karena pada versi ini jeduanya dihapus dari inti laravel 5 dan perlu ditambahkan: Ketik
perintah berikut pada command line :
composer require illuminate/html
Jika telah selesai maka akan tampil pesan seperti berikut ini
Using version ~5.0 for illuminate/html
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing illuminate/html (v5.0.0)
Downloading 100%
Writing lock file
Generating autoload files
Generating optimized class loader
Tambahkan pada providers config/app.php kode berikut ini.
IlluminateHtmlHtmlServiceProvider::class,
Tambahkan pada aliases config/app.php kode berikut ini:
'Form' => IlluminateHtmlFormFacade::class,
'Html' => IlluminateHtmlHtmlFacade::class,
5. 8. Setting routers.php
Ini digunakan untuk menampilkan pada pemanggilan nantinya, routers.php dapat
ditemukan pada.
bookstore/app/Http/routes.php
<?php
/*
|--------------------------------------------------------------------------
| Routes File
|--------------------------------------------------------------------------
|
| Here is where you will register all of the routes in an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
return view('welcome');
});
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| This route group applies the "web" middleware group to every route
| it contains. The "web" middleware group is defined in your HTTP
| kernel and includes session state, CSRF protection, and more.
|
*/
Route::group(['middleware' => ['web']], function () {
//
});
Route::resource('books','BookController');
Tambahkan perintah yang berwarna merah diatas, pada file routers.php
9. TambahkanBeberapa data pada database pustaka
Selanjutnya tambahkan beberapa data kedalam database pustaka yang kita miliki.
6. 10.Buatlah layout untuk Pustaka
Masuk kedalam folder pustaka/resource/view dan buatlah folder baru bernama layout,
dalam folder layout buatlah file php dengan nama template.blade.php dan salin kode
berikut :
File template.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Pustaka</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
7. 11.Buatlah View untuk menampilkan daftar buku
Masuk kedalam folder pustaka/resource/view dan buatlah folder baru bernama books,
dalam folder books tersebut buatlah file php dengan nama index.blade.php dan salin kode
berikut :
@extends('layout/template')
@section('content')
<h1>Pustaka Politeknik Negeri Padang</h1>
<hr>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr class="bg-info">
<th>NO</th>
<th>ISBN</th>
<th>Judul</th>
<th>Penulis</th>
<th>Penerbit</th>
<th>Tahun</th>
</tr>
</thead>
<tbody>
@foreach ($books as $book)
<tr>
<td>{{ $book->id }}</td>
<td>{{ $book->isbn }}</td>
<td>{{ $book->judul }}</td>
<td>{{ $book->penulis }}</td>
<td>{{ $book->penerbit }}</td>
<td>{{ $book->tahun }}</td>
</tr>
@endforeach
</tbody>
</table>
@endsection