Belajar Controller di Laravel
Laravel mengusung metode MVC yaitu memisahkan antara Model (database) View (template) dengan Controller sama seperti CodeIgniter. Controller bisa dikatakan penghubung antara model dengan view. Controller juga bisa dikatakan sebagai pengontrol atau otak nya. Pada materi sebelumnya, controller dikerjakan setelah pembuatan route. silahkan buat route nya jika belum ada. saya sarankan untuk mengikuti tutorial ini dari awal.
Langsung saja buat controller nya dari command line.
E:\xampp\htdocs\projek_laravel>php artisan make:controller SiswaController
jika anda mengikuti tutorial sebelumnya maka pesan dari cmd adalah controller already exists. selanjutnya kita buka file yang sudah kita buat tadi dari editor.
Panggil http://127.0.0.1:8000/siswa
hasil nya yaitu tampil string "Ini adalah halaman data siswa dari controller".
Terima Kasih.
Baik, setelah kita mengulang tutorial di atas selanjutnya kita akan belajar hal-hal apa saja yang umum dikerjakan oleh controller.
#Menampilkan View dari Controller
pertama kita ubah method index nya.
public function index(){
//return 'Ini adalah halaman data siswa dari controller';
return view('siswa.siswa_index');
}
jika dipanggil maka akan muncul pesan error karena file view tidak ada. selanjutnya kita buat file nya.
return view('siswa.siswa_index');
artinya menampilkan view siswa_index.blade.php yang berada dalam folder siswa. hasilnya seperti berikut ini.
#Passing Data dari Controller ke View
Passing data atau mengoper data dari controller ke view akan sering dilakukan dalam pengembangan aplikasi. controller sebagai penghubung antara model dengan view mempunyai cara untuk mengambil dan mengoper data. pada tutorial kali ini kita akan menggunakan data statis. artinya kita tidak menggunakan model agar lebih mudah dipahami.
public function index(){
//return 'Ini adalah halaman data siswa dari controller';
$nama='Indah';
return view('siswa.siswa_index',['nama' => $nama]);
}
$nama='Indah' adalah data yang akan kita passing ke view. caranya kita bungkus datanya dalam array ['index' => $data] kemudian di view index tersebut kita panggil ($index).
<!DOCTYPE html>
<html>
<head>
<title>Data Siswa</title>
</head>
<body>
<h1>Data Siswa</h1>
<div>
Nama: {{$nama}}
</div>
</body>
</html>
{{}} adalah fitur dari template engine laravel yang artinya echo tanpa perlu buka dan tutup php.
#Mengambil data Umpan dari Url
Cara ini juga ada di native php seperti tutorial yang lalu. data dari url ini pada satu kondisi sangat diperlukan. langsung saja tambahkan route baru.
Route::get('/halo/{nama}', 'HaloController@index');
{nama} akan kita tangkap di parameter controller. langsung saja tambahkan controller baru, ikuti cara nya dari tutorial sebelumnya.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HaloController extends Controller
{
public function index($nama){
return $nama;
}
}
Langsung saja kita panggil http://127.0.0.1:8000/halo/Indah.
coba ganti namanya, panggil http://127.0.0.1:8000/halo/Nama Anda. Nah anda sudah berhasil menangkap data di url yang diambl oleh controller dan siap digunakan untuk keperluan.
selanjutnya kita akan kita pelajari mengenai controller langsung pada contoh kasus.
- passing data dari model ke view (di tutorial view)
- mengambil data method post dengan route post (di tutorial crud)