Controller
Best practice dari laravel framework adalah menggunakan controller untuk menghandle
request. Jadi kita perlu memindahkan logic pada routes/web.php ke controller.
Make Controller
Tahap pertama kita akan memindahkan routing / dan /contact. Mari kita ikuti langkah-langkah
dibawah ini:
1. Jalan code ini di terminal untuk membuat Home controller
php artisan make:controller HomeController
2. Code diatas akan membuat file app/Http/Controllers/HomeController.php
3. Pada file routes/web.php ketik code dibawah ini
4. Tambahkan juga code dibawah ini.
Ada code yang perlu di comment
5. Jalankan routing list, apabila settingan routing kita benar, makan action untuk route / dan
/contact. Akan diarahkan ke controller
php artisan route:list
Single Action Controller
Terkadang kita hanya membutuhkan single action controller, misalkan untuk halaman /about.
Untuk membuat single action controller, mari kita ikuti langkah-langkah dibawah ini:
1. Jalan code ini di terminal untuk membuat About controller
php artisan make:controller AboutController
2. Code diatas akan membuat file app/Http/Controllers/AboutController.php. Buka file
tersebut dan edit menjadi seperti ini
3. Buat file view resources/views/about/index.blade.php
Hint:
Selain code tersebut, anda perlu menambahkan code lainya.
Rest Controller
1. Rest controller adalah salah best practice untuk membuat Create, Read, Update, Delete
(CRUD) action.
2. Mari lihat diagram dibawah ini
3. Diagram diatas adalah best practice untuk membuat CRUD action anda yang perlu anda
perhatikan:
a. Resource/Noun → Posts
b. Controller name → PostsController
c. Gunakan http verb yang sesuai dengan action nya, misalkan GET untuk read
data, POST untuk create, PUT/PATCH untuk update dan DELETE untuk delete.
d. Untuk rest akan memiliki 7 action, silahkan lihat kotak yang berwarna putih
4. Laravel sudah menyediakan artisan command untuk mempermudah kita membuat Rest
Controller. Jalankan code dibawah ini:
php artisan make:controller PostsController --resource
5. Command tersebut akan membuat file app/Http/Controllers/PostsController.php,
kemudian buka file tersebut. Secara otomatis file controller tersebut terdiri dari 7 action
(function)
a. public function index() → untuk halaman list post
b. public function create() → untuk halaman form create post
c. public function store(Request $request) → untuk action form create post
d. public function show($id) → untuk halaman single post
e. public function edit($id) → untuk halaman form edit post
f. public function update(Request $request, $id) → untuk action form edit post
g. public function destroy($id) → untuk delete post
6. Pada file routes/web.php, ketikan code di bawah ini
Ada code yang perlu ditambahkan dan ada code yang perlu di comment
7. Jalan command
php artisan route:list
8. Routing resource juga memiliki beberapa option function only dan except
Route::resource('posts', PostsController::class)->only(['index', 'show']);
Route::resource('posts', PostsController::class)->except(['index', 'show']);
Hint:
Silahkan coba code tersebut, temukan perbedaanya atau pengaruhnya.
9. Selesai
Move logic /posts and /posts/{id} from route to controller
Kita akan memindahkan logic pada path /posts and /posts/{id} ke controller. Code kita
sebelumnya sudah bisa menampilkan halaman /posts and /posts/{id}. Mari kita ikuti
langkah-langkah dibawah ini:
1. Buka file app/Http/Controllers/PostsController.php tambahkan private variable.
2. Pada function index() tambahkan code dibawah ini. Line 30
3. Buka http://localhost:8000/posts pada browser
4. Silahkan anda pindahkan logic pada path /posts/{id} dari routes ke controller, sample
tampilan pada browser nya seperti ini
5. Silahkan tambahkan juga logic untuk 5 path lainya














No comments:
Post a Comment