Haloo sob! Yang akan saya jelaskan sekarang tentang View, Model dan juga Controller Laravel 5.2, loh kan sebelumnya saya sudah menjelaskan mengenai model, view, dkk? Yap, tapi kita mempelajari Model, View Dan Controller itu terpisah dan masih kita praktekkan di routes.php.
Sekarang akan kita praktekkan langsung ke Controller juga Blade Template nya Laravel dan coba mengulas kembali yang sudah kita pelajari. Yuk ah langsung saja pertama – tama Jalankan dulu command line php artisan serve nya pada CMD, dan perlu diingat membuka CMD nya harus pada Folder Laravel yg sedang sobat jalankan.
Cara 1 :
- Masuk ke folder Laravel yang sedang sobat kerjakan, klik kanan, pilih Use Composer Here.
Cara 2 :
- Tahan SHIFT dan klik kanan dimana saja halaman kosong, pilih Open Command Window Here.
Cara 1 dan 2 Sama saja hasilnya, hanya saja cara 1 Jika kita saat install Composer dengan men centang Shell Menus, dan cara 2 bagi yang tidak centang Shell Menus nya.
Buka pada Browser http://localhost:8000/, Lalu kita buat url blog di routes.php :
Route::get('/blog', 'BlogController@index');
Sudah membuat url nya, kita buat lagi BlogController
nya pake artisan ya biar cepet. Ingat command line nya gimana? Lupa? Gini script nya :
php artisan make:controller BlogController --resource
Isi script dibawah ini pada BlogController
metode index
sesuai yang akan kita panggil pada routes.php
tadi :
public function index()
{
return view('blog');
}
Kita buat lagi View untuk blog nya tapi kita masih menggunakan template yang sebelumnya jadi kita hanya membuat untuk konten nya saja.
Pada resources/views
beri nama blog.blade.php
, silahkan isi seperti ini :
@extends('templates.index')
@section('content')
Ini halaman Blog
@stop
Dan coba kita panggil url blog nya. Hasilnya :
Oke ternyata udah jalan, karena sebelumnya kita sudah membuat model nya jadi kita praktekkan untuk menampilkan data nya langsung. Kembali ke BlogController
metode index
, silahkan ikuti script nya :
public function index()
{
$blogs = Blog::all();
return view('blog', compact('blogs'));
}
Jangan lupa lagi menambahkan use App\Blog;
diatas class nya contoh nya :
Balik lagi ke blog.blade.php
, kita tampilkan data nya :
@extends('templates.index')
@section('content')
@if(count($blogs))
<ul>
@foreach($blogs as $blog)
<li>Judul : {{ $blog->judul }}</li>
@endforeach
</ul>
@else
<p>Post tidak ada.</p>
@endif
@stop
Hasilnya :
Yap, data saya hanya satu. Sekarang coba sobat tambahkan beberapa dulu manual di table Blogs
nya.
Sekarang saya mempunyai 3 data. Kita mau menampilkan data tertentu berdasarkan ID
nya saja, caranya coba sobat ke routes.php
dulu dan tambahkan :
Route::get('/blog/{id}', 'BlogController@tampilkanID');
Lalu ke BlogController
, buat metode baru dengan nama sesuai di routes.php
yaitu tampilkanID
. Isinya seperti ini :
public function tampilkanID($id)
{
$tampilkan = Blog::find($id);
return view('tampilkan', compact('tampilkan'));
}
Ket :
- Pada metode
tampilkanID
diberi parameter$id
untuk ngedapetinID
nya dariroute
. Blog::find($id);
seperti yang sudah dijelaskan sebelumnya, table blog mencari dan menampilkan sesuai denganID
yang dicari.
Lalu kita buat lagi view baru, diberi nama tampilkan.blade.php
pada folder resources/views
. Ikuti script nya seperti dibawah ini :
@extends('templates.index')
@section('content')
<h4>Lihat Data</h4>
ID nya : {{$tampilkan->id}}, <br/>
Judul nya : {{$tampilkan->judul}}, <br/>
Dibuat : {{$tampilkan->created_at}}, <br/>
Diedit : {{$tampilkan->updated_at}}
@stop
Jadi untuk menampilkan data berdasarkan ID
nya kita tinggal tuliskan manual di url nya http://localhost:8000/blog/1 , maka hasilnya :
Kita coba lagi untuk memanggil dengan nomor ID
3 :
Yap, yang tampil sesuai dengan ID
yang kita panggil. Lalu kita menampilkan data berdasarkan ID
tapi tidak menuliskan nya dengan manual di url, kita mau panggil sebagai link? Gampang kok, sekarang sobat buka lagi blog.blade.php
, tambahkan link di list li nya :
@extends('templates.index')
@section('content')
@if(count($blogs))
<h4>List data</h4>
<ul>
@foreach($blogs as $blog)
<li><a href="{{ url('blog',$blog->id) }}">Judul : {{ $blog->judul }}</a></li>
@endforeach
</ul>
@else
<p>Post tidak ada.</p>
@endif
@stop
Ket :
- Untuk memanggil Link di Blade kita tinggal menuliskan
{{ url('urlyangdiinginkan') }}
, <a href="{{ url('blog',$blog->id) }}"> </a>
maksudnya kita menuju ke url Blog denganid
yang diambil dari list hasil dari perulangan di tableblogs
.
Hasilnya jika kita panggil url blog, list li nya menjadi link :
Coba kita klik list data ke dua dengan judul Burung kakak tua, hasilnya :
Maka data Burung kakak tua yang akan tampil, sesuai dengan link yang kita klik tadi.
Selesai lah sudah pembahasan dasar – dasar kita mengenai si Lara ini, saya sengaja untuk tidak membuat tambah, edit, hapus dengan controller disini karena selanjutnya saya akan membuat CRUD Laravel 5.2 dan mungkin ada dua versi CRUD.
Versi CRUD apa saja nih yang akan saya buat? Ditunggu saja ya sob :D Silahkan pantau terus dan share yaa jika bermanfaat.
Terimakasih.