Laravel View Oluşturma, Kullanma ve Veri Gönderme

Bu yazımızda Laravel ile view kullanımına değineceğiz. 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.
    }
}


YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

1 YORUM

Muhammed Fatih BAĞCIVAN

23-May-2021

Ellerinize emeğinize sağlık hocam 😊 gayet güzel ve açıklayıcı bir anlatım olmuş çok teşekkür ederiz ☺️


Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.