Belajar Laravel (Chapter 10 | Tutorial Views)
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.
- 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.
- 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.
- 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