Pola Model View Controller adalah pola yang paling sering digunakan untuk membangun aplikasi web di dunia saat ini. Secara teori, pola MVC yang baik harus memperbolehkan front-end developer dan back-end developer untuk bekerja sama dalam suatu sistem yang sama tanpa saling mengganggu, bisa berbagi, atau mengedit file yang sama. Saat ini ada lebih dari selusin framework PHP berdasarkan pola MVC.
Apa itu Controller?
Hal pertama yang dilakukan oleh Controller adalah mengambil permintaan, memparsing permintaan, menginisialisasi, memanggil model dan kemudian mengambil responnya, dan mengirimkannya ke View.
Berikut ini cara membuat Controller dengan menggunakan Laravel, tutorial ini adalah lanjutan dari yang sebelumnya di sini.
RESTful Resource controller
Seringkali saat membuat aplikasi kita perlu melakukan operasi CRUD (Create, Read, Update, Delete). Laravel membuat pekerjaan ini mudah bagi kita. Hanya dengan membuat controller dan kemudian Laravel otomatis akan menyediakan semua metode untuk operasi CRUD. Anda juga dapat mendaftarkan route tunggal untuk semua metode dalam file routes.php.
Buat controller baru dengan composer
php artisan make:controller Contoh1
Kemudian buka file controller Contoh1.php (C:\xampp\htdocs\laravel\app\Http\Controllers\Contoh1.php). Edit seperti di bawah :
namespace belajarlaravel\Http\Controllers; use Illuminate\Http\Request; use belajarlaravel\Http\Requests; use belajarlaravel\Http\Controllers\Controller; class Contoh1 extends Controller { public function index() { echo 'index'; } public function create() { echo 'create'; } public function store(Request $request) { echo 'store'; } public function show($id) { echo 'show'; } public function edit($id) { echo 'edit'; } public function update(Request $request, $id) { echo 'update'; } public function destroy($id) { echo 'destroy'; } }
Selanjutnya edit route, routes.php (C:\xampp\htdocs\laravel\app\Http\routes.php). Tambahkan kode berikut :
Route::resource('halaman', 'Contoh1');
Pada prinsipnya route yang didapat seperti tabel ini :
Verb | Path | Action | Route Name |
GET | /halaman | index | halaman.index |
GET | /halaman/create | create | halaman.create |
POST | /halaman | store | halaman.store |
GET | /halaman/{param} | show | halaman.show |
GET | /halaman/{param}/edit | edit | halaman.edit |
PUT | /halaman/{param} | update | halaman.update |
DELETE | /halaman/{param} | destroy | halaman.destroy |
Kita juga bisa memilih Action apa saja yang bisa digunakan dalam controller, seperti kode di bawah :
Route::resource('halaman', 'Contoh1', [ 'only' => ['index', 'show'] ]); Route::resource('halamanbaru', 'Contoh3', [ 'except' => ['edit', 'create'] ]);
Implicit Controller
Implicit Controller memungkinkan Anda untuk menentukan satu route untuk menangani setiap tindakan di controller. Anda dapat mengaturnya dalam file route.php dengan seperti ditunjukkan di bawah ini :
Buat controller baru dengan composer :
php artisan make:controller Contoh2
Edit file controller yang telah dibuat, seperti ini :
<?php namespace belajarlaravel\Http\Controllers; use Illuminate\Http\Request; use belajarlaravel\Http\Requests; use belajarlaravel\Http\Controllers\Controller; class Contoh2 extends Controller { public function getIndex() { // request GET ke index echo 'halaman index'; } public function getShow($id) { // mengirim request GET ke 'coba/show/{id}' echo 'halaman tampil'; } public function postStore() { // mengirim request ke POST 'coba/store' echo 'mengirim variable post'; } }
Tambahkan kode di bawah pada routes.php
Route::controller('coba', 'Contoh2');
Anda bisa mencobanya keduanya dengan membuka halaman di web browser dengan format : {localhost}/{nama route}/{action}.
Misalnya : http://www.laravel.local/coba/show/1
Untuk tutorial membuat virtual host di Windows, silakan klik di sini.
Klik di sini untuk tutorial Laravel lainnya.
ada contoh yg detail nya gak ? buat belajar
untuk laravel, sementara saya baru sempat menulis sedikit di sini
terima kasih sangat beramnfaat
Kok Saya Gak Ada Routes.php di C:\xampp\htdocs\laravel\app\Http\
Anda menggunakan Laravel versi berapa?
kalau misalnya kita mau membuat sebuah fungsi, contohnya fungsi untuk belanja atau menampilkan produk, apakah harus menerapkan MVC dan bagaimana kira-kira contohnya. terimakasih
maksudnya menggunakan laravel? atau pakai kode sendiri? MVC adalah sebuah pola, silakan baca lebih lanjut di sini. Kita bisa membagi aplikasi membagi 3 bagian: model untuk database, controller untuk mengelola dan memproses permintaan, dan kemudian view untuk tampilan