Belajar Laravel (Chapter 10 | Tutorial Views)

Tobi Ahmad
dotlocal
Published in
3 min readApr 12, 2020

Pada framework MVC, terdapat huruf “V” yang artinya “Views”. Views atau “the presentation logic” berfungsi untuk menampilkan data yang dibuat oleh Controller (the application logic). Views dibuat dengan sususan kode HTML yang akan ditampilkan. Untuk menggunakan views menggunakan global function view().

Scope of This Chapter

Pada tutorial ini kita akan membahas tentang Laravel Views pada framework Laravel 7.x

Membuat Views

Views disimpan pada folder resources/views.

  1. Buat file resources/views/test.php
<!-- View simpan di folder resources/views/test.php -->

<html>
<body>
<h1>Hello, Dotlocal</h1>
</body>
</html>

2. Tambahkan route test

<!-- tambahkan kode berikut di file routes/web.php -->Route::get(‘/test’, function () {
return view(‘test’);
});

3. Buka terminal dan jalankan perintah php artisan serve

4. Buka browser dan check route /test

Membuat Views Dengan Blade

Blade merupakan template enggine yang sudah disediakan oleh Laravel. File Blade view menggunakan .blade.php file extension dan disimpan folder resources/views.

  1. Buat file resources/views/post.blade.php
<!-- View simpan di folder resources/views/post.blade.php --><html>
<body>
<h1>Title : {{ $title }}</h1>
</body>
</html>

2. Tambahkan route post

<!-- tambahkan kode berikut di file routes/web.php -->Route::get(‘/post’, function () {
return view(‘post’, ['title' => 'Tegal kota Bahari']);
});

3. Buka terminal dan jalankan perintah php artisan serve

4. Buka browser dan check route /post

Membuat Views Pada Sub Folder

View bisa diletakan pada subfolder dari folder resources/views. Gunakan notasi “Dot” pada saat return views.

  1. Buat file resources/views/admin/post.blade.php
<!-- View simpan di folder resources/views/admin/post.blade.php --><html>
<body>
<h1>Edit : {{ $title }}</h1>
</body>
</html>

2. Tambahkan route admin/post

<!-- tambahkan kode berikut di file routes/web.php -->Route::get(‘/admin/post’, function () {
return view(‘admin.post’, ['title' => 'Tegal kota Bahari']);
});

3. Buka terminal dan jalankan perintah php artisan serve

4. Buka browser dan check route /admin/post

Jika letak views pada subfolder lagi, misalkan pada folder seperti ini :

// letak file
resources/views/admin/posts/post.blade.php
// pemanggilan di controller / route
return view(‘admin.posts.post’);

Menampilkan View pada Controller

Untuk website yang mempunya banyak logic maka tidak relevan jika kita return view pada route, kita bisa pakai Controller untuk menampilkan views.

  • Buat file PostController.php
<!-- File controller app/Http/Controllers/PostController.php --><?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class PostController extends Controller
{
public function index()
{
$data = ['Tegal Kota Bahari', 'Jakarta Panas', 'Mulai bosen WFH']; return view('posts', compact('data'));
}
}
  • Buat file resources/views/posts.blade.php
<!-- View simpan di folder resources/views/posts.blade.php --><html>
<body>
<h1>List Posts</h1>
@foreach($data as $item)
<li>{{ $item }}</li>
@endforeach
</body>
</html>
  • Tambahkan route /posts
<!-- tambahkan kode berikut di file routes/web.php -->Route::get('posts', 'PostController@index');
  • Buka terminal dan jalankan perintah php artisan serve
  • Buka browser dan check route /posts

Passing Data To Views

Kita bisa menggunakan beberapa cara untuk mengirim data dari controller ke views:

Data Array

return view('posts', [
'title' => 'Tegal kota bahari',
]);

Method with()

return view('posts')->with('title', 'tegal kota bahari');

Method compact()

$title = 'Tegal Kota Bahari';return view('posts', compact('title'));

Method compact : https://www.php.net/manual/en/function.compact.php

Optimizing Views

Secara default, views yang menggunakan template blade akan dicompile saat ada request ke tampilan tersebut. Dan ketika views diupdate maka akan Laravel akan melakukan recompile.

Untuk hasil compile view bisa dilihat di folder storage/framework/views.

Untuk mempercepat performance website kita bisa menggunakan perintah Artisan view:cache pada saat deployment.

php artisan view:cache

Kita bisa menghapus cache dengan perintah view:clear

php artisan view:clear

Next Chapter

Blade Templates : https://medium.com/dotlocal/belajar-laravel-chapter-11-tutorial-blade-templates-d33fcca2cbef

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)

Cheers
Tobi Ahmad
Founder of Dot Local

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.