Seperti kita tahu, Laravel adalah salah satu framework PHP yang menganut doktrin MVC (Model-View-Controller), dimana Model adalah komponen yang khusus terkait dengan manipulasi database, View adalah komponen yang khusus menampilkan data maupun konten dalam format HTML yang siap disajikan ke User, dan Controller adalah jembatan antara manipulasi database/konten Model ke View.

Pada tutorial kali ini kita akan mempelajari 2 komponen penting dari doktrin MVC, yaitu Controller-View. Dengan mempelajari 2 komponen penting tersebut, dengan sendirinya kita akan paham bagaimana Controller, View dan Routing URL dalam Laravel dilakukan.

iklan Laravel

Silakan baca tutorial sebelumnya untuk mengenal dan menginstall Laravel.

Controller Bawaan Laravel

Pada saat pertama kali anda sukses menjalankan Laravel, yang dilakukan Laravel untuk menghasilkan halaman Landing adalah langsung memanggil file /app/views/hello.php.

Anda bisa lihat routing URL tersebut di file /app/routes.php:

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', function()
{
	return View::make('hello');
});

Dengan konfigurasi routing tersebut, maka seluruh request dengan url / dari aplikasi akan langsung diarahkan untuk menampilkan konten file views Hello.

Untuk menyesuaikan dengan goal dari seri tutorial kali ini, silakan ubah routing bawaan Laravel tersebut dengan mengarahkan setiap request / ke controller Home dan method/fungsi showWelcome.

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/
/*
Route::get('/', function()
{
	return View::make('hello');
});
*/
Route::get('/', 'HomeController@showWelcome');

Sedangkan isi dari Controller Home sendiri, bisa anda lihat di /app/controllers/HomeController.php:

<?php

class HomeController extends BaseController {

	/*
	|--------------------------------------------------------------------------
	| Default Home Controller
	|--------------------------------------------------------------------------
	|
	| You may wish to use controllers instead of, or in addition to, Closure
	| based routes. That's great! Here is an example controller method to
	| get you started. To route to this controller, just add the route:
	|
	|	Route::get('/', 'HomeController@showWelcome');
	|
	*/

	public function showWelcome()
	{
		return View::make('hello');
	}

}

Silakan uji perubahan ini di browser, lihat ke URL http://localhost/tmp/laravel/public (atau sesuaikan dengan milik anda):
laravel-1

tidak akan ada perbedaan dengan routing bawaan Laravel sebelumnya khan?

Membuat Controller/View Sendiri

Jika anda sudah paham cara kerja routing URL Laravel dan struktur konsep Controller-View nya seperti bagian tutorial diatas, maka anda bisa lanjutkan dengan membuat Controller dan View Sendiri.

Sekedar preview, apa yang akan kita lakukan adalah membuat Controller untuk halaman depan (homepage) berikut view sederhana untuknya.

1. Silakan buat file Controller baru dengan nama Home.php di folder /app/controllers/.
2. Pada file Home.php tersebut, tuliskan layout Class dan method/function berikut:

<?php

Class Home extends BaseController
{
	public function getIndex()
	{
		return View::make("home");
	}
}

Contoh diatas adalah contoh paling dasar dari struktur Controller pada laravel, dimana setiap class Controller adalah ekstensi/kelanjutan dari BaseController milik Laravel, dan fungsi getIndex() adalah fungsi yang akan memanggil file view untuk diproses lebih lanjut.

3. Buat file view yang dimaksud, yaitu /app/views/home.php:

<?php
echo "Halo... selamat datang,";

4. Ubah routing URL bawaan Laravel (/app/routes.php) menjadi:

<?php
Route::controller('/', 'Home');

dengan kata lain, setiap request untuk URL / akan diproses oleh Controller Home fungsi/method getIndex().

5. Silakan test di browser dengan URL http://localhost/tmp/laravel/public (atau sesuaikan dengan milik anda):
laravel-2

iklan Laravel

Selamat berjumpa di tutorial selanjutnya (Laravel dan Template HTML)