#BASIC CONTROLLER
Controller adalah bagian yang menghubungkan View dengan Model. Melalui Controller inilah program dapat memperoleh data dari Model dan dikirimkan ke View. Cara untuk membuat controller dapat dilihat pada kode di bawah ini.
php artisan make:controller UserController
Ketikkan perintah tersebut pada command prompt dengan lokasi direktori program yang anda buat. Nantinya perintah tersebut akan membuat file UserController.php pada direktori app/Http/Controllers. Semua file Controller yang anda buat letakkan pada direktori tersebut. Berikut ini adalah source dasar dari file Controller yang baru saja anda buat.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
//
}
Nah seperti yang telah dijelaskan pada bagian route https://ozkadon.blogspot.com/2018/07/tutorial-laravel-55-routing_11.html bagaimana cara untuk membuat sebuah route yang mengarah ke suatu action pada suatu controller, file Controller ini dapat anda isi dengan sekumpulan function action sesuai dengan route yang telah anda buat, Misalnya anda membuat route
Route::get('/tes', 'UserController@index');
maka buatlah action tersebut pada file UserController.php seperti contoh kode di bawah ini
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
//
public function index(){
return view('user/index');
}
}
Berdasarkan contoh kode di atas ketika user mengakses url /tes maka program akan mengakses action index pada controller UserController dan mengembalikan view index.blade.php / index.php yang terdapat pada direktori resources/views/user. Penjelasan mengenai view nantinya akan dibahas pada artikel tutorial selanjutnya. Semua proses yang terjadi pada action index ini dapat anda buat sesuai dengan kebutuhan program yang anda buat.
Seperti halnya pada Model, seluruh file pada Controller ini juga menggunakan namespace. Jadi jika anda membuat file controller tidak terletak pada direktori app/Http/Controllers maka jangan lupa untuk mengganti namespace misalnya menjadi app/Http/Controllers/Backend jika anda membuat file tersebut pada direktori app/Http/Controllers/Backend dan seterusnya.
#RESOURCE CONTROLLER
Laravel sudah menyediakan fitur resource controller dalam rangka membuat CRUD. Dengan menggunakan fitur ini, program akan membuat satu controller yang mencakup semua action untuk melakukan CRUD data. Caranya yang pertama adalah membuat controller nya terlebih dahulu dengan perintah artisan seperti biasanya.
php artisan make:controller UserController --resource
Dengan perintah tersebut akan dibuat sebuah file UserController.php yang berisi berbagai macam action kosong untuk keperluan CRUD seperti berikut.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Setelah file controller ini jadi langkah berikutnya adalah menghubungkan controller ini dengan route. Saya menganjurkan untuk membuat route nya terlebih dahulu dan kemudian baru menyambungkannya dengan controller. Namun karena artikel kali ini membahasa tentang controller maka saya menulis cara untuk membuat controller nya terlebih dahulu.
Route::resource('user', 'UserController');
Jika kode di atas ditulis di route maka secara otomatis Laravel akan membuat beberapa macam route untuk keperluan CRUD sesuai dengan gambar di bawah ini.
Tabel route resource |
Bagaimana cara untuk melakukan insert, update, delete data ke dalam database bisa dibaca pada artikel berikut https://ozkadon.blogspot.com/2018/07/tutorial-laravel-55-eloquent-bagian-6.html. Dalam artikel mengenai Eloquent tesebut sudah dijelaskan bagaimana melakukan modifikasi database di dalam controller.
Demikianlah artikel Tutorial Laravel 5.5 - Controller (Bagian 7) ini. Semoga penjelasan mengenai Controller ini dapat mudah dipahami. Dan seperti biasanya semua penjelasan yang saya berikan hanyalah dasar yang biasanya sering dipakai dalam pembuatan program pada umumnya. Untuk penjelasan-penjelasan lainnya secara khusus akan saya berikan pada artikel lainnya di luar seri tutorial laravel ini. Terima kasih dan selamat mencoba.
Post a Comment
Post a Comment