Laravel

Bekerja Dengan Controller Laravel

Bekerja Dengan Controller Laravel

3206 Dilihat

Pada artikel sebelumnya kita telah belajar bagaimana cara membuat controller pada laravel menggunakan artisan command. Dan kesempatan kali ini, kita akan melakukan pendekatan dengan controller. Tapi sebelumnya izinkan saya membahas sendikit mengenai namespace dan use statements.

Namespace Dan Use Statements

Secara default ketika membuka controller yang telah dibuat sebelumnya, maka akan ditemukan namespace declaration, di ikuti dengan use statement:

namespace App\Http\Controllers;
use Illuminate\Http\Request;

Pada namespace yang digunakan laravel mengikuti aturan PSR-4 namespace, dimana penempatannnya berada pada posisi yang paling atas. Ini sangat logis dan mudah untuk dipahami dari namespace diatas, karena hanya mengikuti struktur folder dari aplikasi. TestController.php berada didalam folder Controllers. Jadi anda dapat melihatnya dengan jelas bagaimana cara kerjanya, hanya dengan mengikuti path dari folder diatas.

Use statement juga serupa, mengikut struktur folder. Perbedaannya hanya mengambil bagian terakhir dari path class yang sebenarnya. Dalam beberapa kasus, seperti exception handling, jika use statement hilang, Laravel tidak akan me-return error dan anda tidak akan tahu dimana letak kesalahannya. Jika itu terjadi, pastikan semua use statements yang anda butuhkan untuk menjalankan program anda telah telah tersedia.

Request Class dimulai dengan Illuminate yang dapat kita temukan disini :

vendor/laravel/framework/src/illuminate/Http/Request.php

Jika anda membuka file tersebut, dapat anda temukan sebuah namespace seperti berikut :

namespace Illuminate\Http;

Perhatikn penggunaan Illuminate namespace, yang berarti class framework dapat ditemukan di vendor/laravel/framework/src/illmunate.

Kita tidak perlu memikirkan tentang isi file tersebut, saya hanya menunjukkan dimana file illuminate berada.

Bekerja dengan controller

Kembali ke controller, Pada file yang kita punya, terdapat class declaration :

class TestController extends Controller
{

Cukup sederhana. Karena semua method pada class ini masih kosong, sehingga tidak ada yang perlu kita diskusikan, kecuali restful pattern, dimana terdapat setiap method didalamnya :

index, create, store, show, edit, update, destroy

Pada kesempatan kali ini kita tidak akan menggunakan semua method diatas, apalagi membahas tentang restful pattern, hanya saja kita akan melihat bagaimana cara controller bekerja. Ada dua fokus yang akan dicapai, yakni bagaimana menggunakan controller dan mengghubungkannya ke route, dan yang kedua memanggil view pada controller.

Pada index method, kita ubah menjadi seperti ini :

public function index()
{
   return 'lagi coba controller';
}

Kemudian pada route ketikkan syntax berikut :

Route::get('/test', '[email protected]');

Jika masih bingung tentang route, bisa baca artikel Mengenal routes pada laravel 5.4. Sedikit kilas balik, parameter pertama berisi uri segment dan parameter kedua bisa menggunakan clousure function dan juga memanggil index pada sebuah controller.

Lalu coba akses localhost/daengweb.id/public/test atau jika menggunakan php artisan serve menjadi : localhost:8000/test dan akan memberikan result : lagi coba controller

mudah bukan ? Kita tidak akan membahas lebih jauh lagi pada artikel ini, karena point utama kita adalah memahami bagaimana menggunakan sebuah method dari controller yang telah kita buat agar dapat di akses melalui web browser.

Bekerja Controller dan view

Perkenalkan helper yang bernama view() yang dapat digunakan untuk memanggil file khusus yang hanya berisi view (tampilan, red: html, etc). Modifikasi method index menjadi seperti ini :

public function index()
{
  return view('test.index');
}

pada helper view diatas, kita menginginkannya untuk memanggil file index.blade.php (pada helper hanya menyebutkan nama awalnya saja sebelum .blade.php) yang terletak didalam folder test. Folder test dapat kita temukan pada resources/views, sedangkan titik (.) sebagai pengganti slash (/) atau bisa juga menggunakan slash, tapi saya sendiri lebih menyukai penggunaan dot (titik) agar tampak berbeda. Hehehe

Dengan laravel, seperti kebanyakan framework. Sering terdapat berbagai cara untuk melakukan sesuatu. Tapi pada tutorial ini, saya akan fokus menggunakan implementasi secara spesifik mengikut cara yang bisa saya gunakan.

Oke, kembali ke view, tentu saja ‘test.index’ tidak akan berkerja karena file tersebut belum tersedia. Jadi selanjutnya silahkan buat folder test didalam folder views yang terletak di : resources/views/ kemudian buat file index.blade.php didalam folder test yang sudah anda buat.

Kemudian buka file index.blade.php lalu masukkan potongan code berikut :

<h1>Lagi test view dari controller</h1>

Jadi ketika kita mengakses localhost/daengweb.id/public/test atau localhost:8000/test akan menampilkan hasil : Lagi test view dari controller

Jauh lebih mudah kan ? Jika masih bingung silahkan dicoba kembali, karena belajar program adalah kumpulan perulangan yang dilakukan secara berulang-ulang. Bukan kegiatan menghafal syntax. Semoga bermanfaat.

Backend Developer iTechShark, salah satu perusahaan asal Amerika. Senang dengan teknologi baru. Laravel addict yang tidak fanatik. Merekam jejak dengan menulis

Aplikasi Laundry (Laravel 5.8 - Vue.js - SPA) #1: Schema Database Laravel

Aplikasi Laundry (Laravel 5.8 - Vue.js -...

Beragam method yang digunakan untuk membuat sebuah aplikasi sesuai dengan yang diinginkan, salah satunya menggunakan SPA. Dalam tutorial ini kita akan belajar bagaimana membuat aplikasi laundry menggu...

Google Authentication With Laravel 5.8 Laravel

Google Authentication With Laravel 5.8

Otentikasi menjadi gerbang utama sekaligus protector yang biasanya digunakan untuk melindungi data atau membatasi akses pada aplikasi terkait. Berikut adalah cara membuat authenticate google di Larave...

Membuat Repository Pattern Laravel 5.7 Laravel

Membuat Repository Pattern Laravel 5.7

Laravel hadir dengan berbagai fitur beserta kemudahan yang ditawarkan guna mempercepat proses development, namun bukan berarti hal itu membuat kita menjadi programmer "pemakai" tanpa memikirkan dan be...

Komentar