MVC yapısını duymuşsunuzdur. Model-View-Controller yapısı bir projenin parçalara bölünerek tek bir elden daha rahat yönetilmesini sağlayan bir design patterndir. Bu linkten MVC nedir adlı yazımıza ulaşabilirsiniz.
View Nedir ?
Mvc yapısının bir parçası olan view projemizin son kullanıcının göreceği kısımla alakalı bölümüdür. Yani projemizin Front End kısmına ait bölümdür. Html belgelerimizin hepsini rotalarda ya da controller dosyasında tutmamız elbette mantıklı bir hareket olmazdı. Kod karmaşıklığına ve yönetim zorluğuna sebep olurdu. Burada imdadımıza MVC yapısı yetişiyor ve projemizin daha düzenli bir hal almasına yardım ediyor.
Laravelde view dosyalarımızı resources klasörü altında bulunan views klasöründe tutarız. Rota ve controller dosyalarından viewe yönlendirme yaptığımız zaman sistem yönlendirdiğimiz dosyayı bu klasörde arar.
Laravelde basit bir view dosyasının içeriği şu şekilde olur.
deneme.blade.php dosyamız.
<html><body><h1>Merhaba, {{ $isim}}</h1></body> </html>
Bu dosyayı rotalardaki web.php dosyamızdan şu şekilde yönlendiririz.
Route::get('/', function () { return view('deneme', ['isim' => 'Zafer']); });
View Oluşturma Ve Kullanma
Projemiz içerisinden resources/views klasöründe .blade.php uzantılı bir dosya eklersek view dosyamız oluşmuş olur.
Blade yapısı laravelin kendi template yapısıdır. Ve view dosyalarımızı blade uzantısıkullanarak kaydederiz.
Bir view oluşturduktan sonra rota veya controller metotları ile view dosyamıza yönlendirme yapabiliriz.
İç İçe View Dosyası Oluşturma
Bir proje oluştururken dosyaları ayrı ayrı klasörler içerisinde kullanmamız projemizi daha düzenli ve okunaklı bir hale getirir. ÖRneğin bir projede admin ve front diye iki tane klasörümüz ve bu iki klasörün içlerinde o bölümlere ait view dosyaları olabilir. LAravelde bu dosyalara yönlendirme yaparken klasör adını yazdıktan sonra araya nokta koyarak dosya adımızı yazarak yönlendirebiliriz.
return view('admin.profile'); //resources/views/admin/profile.blade.php return view('admin.deneme.index') //resources/views/admin/deneme/index.blade.php
View Dosyasının Olup Olmadığını Kontrol Etmek
Rota dosyamızın yönlendirdiği view dosyası projemizde olmazsa sisttem çalışmayı durdurur ve bu istemediğimiz durumlar ortaya çıkabilir. Bunun önüne geçmek için View sınıfının exist metodunu kullanabiliriz.
Eğer view dosyası varsa true değerini döndürür ve işlem yapmaya devam eder.
use Illuminate\Support\Facades\View; if (View::exists('admin.kisiler')) { //eğer kisiler.blade.php dosyası var ise bura çalışır. }
View Dosyalarına Veri Gönderme
View metoduna ikinci parametre olarak bir dizi göndererek veri aktarabiliriz.
return view('admin.kisiler', ['isim' => 'Zafer']);
Bilgileri bu şekilde göndermek istiyorsak veriler anahtar-değer çiftinden oluşan bir dizi olmalıdır.
Bu şekilde verilerimizi gönderdikten sonra verilere
<?php echo $isim; ?>
şeklinde ulaşabiliriz.
With Metodu
Laravel ile view dosyalarına veri aktarırken kullandığımız bir diğer metod ise with metodudur.
With metodu ile zincirleme bir şekilde view dosyamıza veri aktarımı yapabiliriz.
return view('admin.kisiler') ->with('isim', 'Zafer') ->with('soyisim', 'Yıldız');
Verileri Tüm View Dosyalarına Aktarma
Bazı durumlarda bir veriyi birden fazla ya da tüm view dosyalarında kullanmak isteyebiliriz. Bu işlemi App/Services/Providers klasörü içerisindeki AppServicesProviders Dosyasında View sınıfının shared metodu ile yapabiliriz.
<?php namespace App\Providers; use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function register(){ // } public function boot(){ View::share('key', 'value'); //bu komut ile tüm view dosyalarına aynı bilgileri gönderebiliriz. } }