Laravel - Model, Controller dan View
Pada sebelumnya kita telah mempelajari mengenai dasar-dasar dari laravel. Pada kesempatan kali ini kita akan mencoba mempelajari mengenai Laravel pula dengan tingkatan yang lebih maju lagi. Kenapa saya sebut maju, karena materi kali kita akan membahas mengenai Model, Controller dan View dari Laravel. Semoga blog ini bisa bermanfaat bagi banyak orang.
A. Dasar Teori
Pada hakikatnya ketika kita ingin mempelajari sesuatu tentu harus mengetahui terlebih dahulu apa yang akan kita pelajari. Dan ini merupakan tahapan awal yang sangat penting bagi kita semua. Yakni pemahaman mengenai sesuatu yang akan kita pelajari. Untuk itu silahkan simak beberapa teori mengenai tema yang akan kita pelajari pada blog ini.
- View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
- Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
- Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.
B. BASIC CONTROLLERS (DASAR CONTROLLERS)
Nah untuk memanggil file ProfileController.php tersebut, kalian harus mengedit sintaks yang ada pada routes.php.
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ProfileController extends Controller{
public function index()
{
return 'Nama
saya Didi Sholahuddin';
}
}
?>
|
Pada tabel di atas adalah contoh sintaks yang diisi
pada file ProfileController.php.
Route::get('/', 'ProfileController@index');
|
Dan untuk memanggilnya, kalian bisa menggunakan
sintaks yang di atas ini. Sintaks ini kalian simpan pada file routes.php. Pada
setiap jenis Laravel yang digunakan, memiliki beberapa perbedaan. Ada yang menggunakan
file web.php dan sedangkan saya menggunakan file routes.php. Namun keduanya
sama saja.
Untuk mengaksesnya cukup dengan memasukkan alamat seperti gambar di atas. Dan hasilnya pun akan keluar.
Analisis:
Route::get adalah method digunakan untuk menampilkan view maupun data. Tanda ‘/’ , menunjukkan route yang di definisikan atau dibuat untuk route utama atau halaman utama. profileController , adalah nama file ataupun class controller. Index , adalah method atau fungsi yang berada di controller.
PENGGUNAAN CONTROLLER, VIEW DAN BLADE
Views adalah representasi visual dari suatu aplikasi. Pada bagian ini memiliki fungsi untuk menyajikan data yang diterima oleh Controller dari Model. Atau dalam kata lain Views adalah bagian dari sistem di mana HTML dihasilkan dan kemudian ditampilkan.
Blade adalah salah satu fitur dalam laravel yang digunakan untuk menampilkan output pada view. Fitur blade ini bisa dibilang sangat canggih, karena kita dapat membuat coding tanpa perlu tag PHP (<?php ?>). Selain menampilkan output, blade juga digunakan untuk membuat layout website. Template menggunakan ekstensi blade.php dan ditempatkan di resources/views.
Contoh 1:
Buat coding seperti gambar dibawah dalam file ProfileController.php yang ada dalam C:\xampp\htdocs\kel5\app\Http\Controllers yaitu untuk fungsi menampilkan nama atau profile kita sendiri.
Route::get adalah method digunakan untuk menampilkan view maupun data. Tanda ‘/’ , menunjukkan route yang di definisikan atau dibuat untuk route utama atau halaman utama. profileController , adalah nama file ataupun class controller. Index , adalah method atau fungsi yang berada di controller.
PENGGUNAAN CONTROLLER, VIEW DAN BLADE
Views adalah representasi visual dari suatu aplikasi. Pada bagian ini memiliki fungsi untuk menyajikan data yang diterima oleh Controller dari Model. Atau dalam kata lain Views adalah bagian dari sistem di mana HTML dihasilkan dan kemudian ditampilkan.
Blade adalah salah satu fitur dalam laravel yang digunakan untuk menampilkan output pada view. Fitur blade ini bisa dibilang sangat canggih, karena kita dapat membuat coding tanpa perlu tag PHP (<?php ?>). Selain menampilkan output, blade juga digunakan untuk membuat layout website. Template menggunakan ekstensi blade.php dan ditempatkan di resources/views.
Contoh 1:
Buat coding seperti gambar dibawah dalam file ProfileController.php yang ada dalam C:\xampp\htdocs\kel5\app\Http\Controllers yaitu untuk fungsi menampilkan nama atau profile kita sendiri.
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ProfileController Extends Controller{
function index()
{
return
'Pemilik web ini adalah Didi Sholahuddin';
}
public function namaSendiri()
{
$nama="Didi
Sholahuddin";
$alamat="Tangerang";
$jabatan="CEO
IT Department";
return
view('profile',compact('nama','alamat','jabatan'));
}
}
|
Keterangan:
Kita membuat fungsi yaitu untuk menampilkan namaSendiri. Kita membuat 3 variable yaitu nama, alamat dan jabatan. Return view (‘profile’ artinya kita akan menampilkan view yang ada dalam profile yaitu fle profile.blade.php. lalu dari 3 variable diatas kita membuat arraynya yaitu memakai fungsi compact nama, alamat dan jabatan supaya bisa dibaca oleh profile nya .
Selanjutnya kita buat coding bladenya seperti yang tertera pada gambar dibawah, 3 variable tadi yang dibuat akan terbaca disini yaitu nama, alamat dan jabaran. Dan file simpan di C:\xampp\htdocs\laraveldidi\resources\views
<table>
<tr>
<td>Nama</td>
<td>{{$nama}}</td>
</tr>
<tr>
<td>Alamat</td>
<td>{{$alamat}}</td>
</tr>
<tr>
<td>jabatan</td>
<td>{{$jabatan}}</td>
</tr>
</table>
|
Route::get('/namaSendiri','ProfileCOntroller@namaSendiri');
|
Keterangan:
Get (‘nama-sendiri’ artinya kita akan memanggil atau menjalankan program dengan key nama-sendiri atau sebagai url nya. selanjutnya profileController yaitu sebagai controller dan kita akan memanggil index yaitu fungsi namaSendiri sebagai metode nya.
Dan jika dijalankan hasilnya akan seperti gambar dibawah ini:
Contoh 2:
Kita akan menampilkan 3 data barang degan controller dan view untuk menampilkan nama dan harga barang. Pertama kita buat metodenya yaitu fungsi hargaBarang dengan view akan memanggil barang yaitu file barang.blade yang dibuat sebelumnya dan menggunakan compact ketiga barang. Code lengkapnya seperti dibawah ini:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ProfileController Extends Controller{
public function hargaBarang ()
{
$beras
= "10.000";
$rambutan
= "1.500";
$sawo
= "2.000";
return
view('barang',compact('beras', 'rambutan', 'sawo'));
}
|
Sama seperti contoh 1, kita akan membuat blade barang sebagai template dan variable barang yang dibuat sebelumnya yaitu beras, rambutan dan sawo akan terbaca disini, lengkapnya seperti gambar dibawah ini:
<table>
<tr>
<td>Nama
Barang</td>
<td>|</td>
<td>Harga</td>
</tr>
<tr>
<td>Beras</td>
<td>|</td>
<td>{{$beras}}</td>
</tr>
<tr>
<td>Rambutan</td>
<td>|</td>
<td>{{$rambutan}}</td>
<tr>
<td>Sawo</td>
<td>|</td>
<td>{{$sawo}}</td>
</tr>
</table>
|
Dalam route di file web.php kita panggil dengan ulr harga-barang dan profile controller dengan index nya yaitu fugsi hargaBarang
Route::get('/listbarang','ProfileCOntroller@hargaBarang');
|
Maka hasilnya akan seperti pada gambar dibawah ini:
Contoh 3:
Untuk contoh kali ini sama saja seperti contoh 2, namun kita menggunakan array. Buat coding di ProfileController dengan nama fungsi hargaBarang1 dan array yaitu barangs, dengan isi array nama barang dan harganya. Lalu di return view ke barang1 dengan compact yaitu nama array nya ‘barangs’. Lengkapnya seperti pada gambar dibawah:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ProfileController extends Controller{
public function hargaBarangarray ()
{
$barangs= array(
array('nama'=>'Beras',
"harga"=>10000),
array('nama'=>'Rambutan',
"harga"=>1500),
array('nama'=>'Sawo',
"harga"=>2000),
);
return
view('barangarray',compact('barangs'));
}
}
|
Selanjutnya kita buat bladenya, dengan Nama dan Harga. Lalu akan memanggilnya dengan foreach, dengan fungsi array sebelumnya yaitu ‘barangs’ sebagai kunci untuk ’barang’, dan ‘barang’ ini akan menampilkan Nama dan Harga yang telah dibuat dalam Array ‘barangs’ Codenya seperti pada gambar dibawah:
<table>
<tr>
<td>Nama</td>
<td>Harga</td>
</tr>
<?php
foreach
($barangs as $key => $barang){
?>
<tr>
<td>{{$barang['nama']}}</td>
<td>{{$barang['harga']}}</td>
</tr>
<?php
}
?>
</table>
|
Dan pada routingnya kita menggunakan url harga-barang1 dengan ProfileController dan dengan index hargaBarang1 sebagai fungsi yang dibuat di ProfileController.
Route::get('/listbarangarray','ProfileCOntroller@hargaBarangarray');
|
Jika dijalankan maka akan tampil seperti pada gambar dibawah ini:
Komentar
Posting Komentar