Passing data adalah proses mengoper/mengirimkan data, data yang dioper/dikirimkan adalah data yang ada pada controller ke view untuk ditampilkan. Cara untuk mempassing atau mengirim data ke view pada laravel, kita bisa mengirim datanya dalam parameter ke-2 pada fungsi view().
Fungsi view() kita gunakan untuk memanggil view yang ingin ditampilkan, data yang ingin di passing kita letakkan pada parameter ke-2 dalam fungsi view.
Memanggil View Dari Controller Laravel
Pada materi sebelumnya kita telah membuat controller SiswaController, kita akan memanggil atau menampilkan view dari controller SiswaController yang sudah kita buat pada tutorial laravel sebelumnya.
Buka controller SiswaController, pada latihan_laravel/app/Http/Controllers/SiswaController.php.
Pada tutorial sebelumnya kita telah membuat method index() pada controller SiswaController. untuk me-return atau mengembalikan string. seperti pada syntax di gambar di atas dan syntax berikut.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SiswaController extends Controller { public function index() { return "Halo ini adalah method index, dalam controller SiswaController"; } }
Sekarang kita akan mencoba memanggil atau menampilkan view dari controller, jadi sampai di sini kita tidak lagi menampilkan view dari route seperti cara sebelumnya.
Karena Cara sebelumnya kita hanya berkenalan dengan route dan cara pemanggilan view, cara benar nya adalah view tetap di panggil dari controller untuk ditampilkan.
Buat view baru, di sini kita akan menampilkan view biodata siswa, jadi buat sebuah file view baru lagi dalam folder views, buat dengan nama biodatasiswa.blade.php.
Untuk nama view-nya bebas, asalkan ekstensinya tetap menggunakan .blade.php seperti cara membuat view pada laravel yang sudah dijelaskan pada tutorial sebelumnya.
latihan_laravel/resources/views/biodatasiswa.blade.php
<!DOCTYPE html> <html> <head> <title>Tutorial Laravel 8.16.1 #5 : Passing Data Controller Ke View</title> </head> <body> <h1>Tutorial Laravel</h1> <a href="https://www.agussuratna.net/category/laravel" target="_blank">www.agussuratna.net</a> </body> </html>
Selanjutnya pada method index dalam controller SiswaController kita panggil view biodatasiswa.blade.php ini.
latihan_laravel/app/Http/Controllers/SiswaController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SiswaController extends Controller { public function index() { return view('biodatasiswa'); } }
Sekarang pada saat kita mengakses localhost:8000/siswa atau localhost/latihan_laravel/public/siswa, maka akan ditampilkan view biodatasiswa.blade.php. Karena pada materi sebelumnya yaitu pada tutorial cara membuat controller pada laravel, kita telah memerintahkan route ‘siswa’ menjalankan controller SiswaController dan method index pada saat route siswa’ di akses.
Sekarang kita akan mengakses route “siswa”, jangan lupa menjalankan “php artisan serve” dahulu. Hasil dari mengakses localhost:8000/siswa , maka hasilnya :
Passing Data Dari Controller Ke View Laravel
Untuk memparsing data dari controller ke view, kita bisa mengirimkannya pada parameter kedua pada fungsi view(). Silahkan buka lagi method index() pada controller SiswaController.
latihan_laravel/app/Http/Controllers/SiswaController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SiswaController extends Controller { public function index() { $nama = "Agus Suratna"; return view('biodatasiswa',['nama' => $nama]); } }
Perhatikan pada syntax di atas kita membuat sebuah variabel yang menyimpan data nama “Agus Suratna”. Kemudian pada bagian :
['nama' => $nama]
kita mengirimkan data variabel nama, selanjutnya pada view biodatasiswa.blade.php, kita bisa langsung menampilkan data yang ada dalam variabel nama, buka view biodatasiswa.blade.php ubah sintaknya menjadi seperti berikut :
latihan_laravel/resources/views/biodatasiswa.blade.php
<!DOCTYPE html> <html> <head> <title>Tutorial Laravel 8.16.1 #5 : Passing Data Controller Ke View</title> </head> <body> <h1>Tutorial Laravel</h1> <a href="https://www.agussuratna.net/category/laravel" target="_blank">www.agussuratna.net</a> <br> <p>Nama : {{ $nama }}</p> </body> </html>
Perhatikan pada syntax di atas, kita bisa langsung menampilkan data yang ada dalam variabel nama tadi hanya dengan menuliskan syntax {{ $nama }} . Jadi kita tidak perlu lagi menuliskannya dengan cara membuka tag php ( <?php ……. ?>). Ini lah kelebihan dari sistem template blade dari laravel ( .blade.php ) , segala penggunaannya sudah dipermudah dalam menggunakan laravel.
Hasil dari passing data tersebut bisa diakses dengan cara localhost:8000/siswa
Passing Data Array Ke View Laravel
Untuk mengoper data array ke view laravel, perhatikan contoh berikut :
latihan_laravel/app/Http/Controllers/SiswaController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SiswaController extends Controller { public function index() { $nama = "Agus Suratna"; $pelajaran = ["Pemrograman Web","Jaringan Komputer","Basis Data"]; return view('biodatasiswa',['nama' => $nama, 'mapel' => $pelajaran]); } }
Perhatikan pada syntax di atas, data array yang kita masukkan dalam variabel pelajaran bisa langsung kita passing ke view, dengan cara yang sama, data-data yang dikirim ke view tinggal kita pisahkan dengan tanda koma ” , “.
['nama' => $nama , 'mapel' => $pelajaran]
Pada contoh data array yang dikirim di atas, data array kita masukkan dalam variabel pelajaran, kemudian kita kirimkan dengan nama “mapel”, jadi pada view kita akan mengakses dengan nama “mapel”.
Buka view biodatasiswa.blade.php lagi.
latihan_laravel/resources/views/biodatasiswa.blade.php
<!DOCTYPE html> <html> <head> <title>Tutorial Laravel 8.16.1 #5 : Passing Data Controller Ke View</title> </head> <body> <h1>Tutorial Laravel</h1> <a href="https://www.agussuratna.net/category/laravel" target="_blank">www.agussuratna.net</a> <br> <p>Nama : {{ $nama }}</p> <p>Mata Pelajaran</p> <ul> @foreach($mapel as $m) <li>{{ $m }}</li> @endforeach </ul> </body> </html>
Perhatikan pada syntax di atas, data array mapel yang dikirimkan dari controller kita tampilkan dengan menggunakan foreach(), karena datanya dalam bentuk array.
Data variabel mapel kita ubah menjadi variabel m dalam fungsi foreach. kemudian kita tinggal menampilkan variabel m seperti pada syntax di atas.
Untuk penulisan fungsi foreach dan perulangan lainnya dalam template blade laravel kita juga tidak perlu menulisakan tag php. kita bisa menggungakan tanda @ langsung.
Haasilnya seperti berikut ini :
bagaimna dengan menampilkan data dari database mysql ke view melalui controllernya?
Silahkan baca di tutorial berikutnya tentang CRUD dengan Query Builder
http://agussuratna.net/2020/12/12/tutorial-laravel-8-crud-pada-laravel-dengan-query-builder/
dan CRUD dengan Eloquent
http://agussuratna.net/2021/04/18/tutorial-laravel-8-crud-laravel-menggunakan-eloquent/
aadad
kapencet pak maaf