Laravel 5.2 View

Merhaba arkadaşlar öncelikle gösterdiğiniz ilgi için gerçekten çok teşekkür ederim :) Bugün View yapısı ve Controller ile çıkaracağımız sonucu Viewe göndermeyi öğreneceğiz. Benim en sevdiğim kısımlardan birisi bu kısım :)

 

Bir önceki derste belirttiğim gibi bir süre sabit route ve controllar yapısını kullanacağız. Bu derste geçen dersteki hazırladığımız Route ve Controllar ile biraz oynama yapacağız

 

Öncelikle View dosyalarımızın bulunduğu dizini inceleyelim

 

resources / views

 

Belirttiğimiz dizine girdiğinizde daha önce ilk kurulumundan değişiklik yapmadıysanız welcome.blade.php sayfasını göreceksiniz. Bu laravelin hoşgeldiniz sayfası bununla işimiz yok direkt silebilirsiniz. Buraya 4 adet view dosyası oluşturacağız. Bir önceki dersimizde Route yapısında 4 adet sayfa olacağını belirlediğimiz için şimdi de 4 adet View sayfası oluşturacağız ve Controllar içerisinde return ettiğimiz değerleri Viewe gönderip orada göstereceğiz.

 

anasayfa.blade.php , hakkimizda.blade.php , iletisim.blade.php , parametredenemesi.blade.php

 

İsimleri ile 4 tane View sayfalarını oluşturalım. Daha sonra Route sayfasını aşağıdaki gibi değiştirelim

 

Route::get('/', 'LaravelCont@anasayfa');

Route::get('/hakkimizda', 'LaravelCont@hakkimizda');

Route::get('/iletisim', 'LaravelCont@iletisim');

Route::get('/parametreDenemesi/{id?}', 'LaravelCont@parametreDenemesi');

 

LaravelCont adındaki Controllar sayfamızıda aşağıdaki gibi değiştirelim

 

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class LaravelCont extends Controller
{
    public function anasayfa(){
        return view('anasayfa');
    }

    public function hakkimizda(){
        $title = "Hakkımızda";
        $keywords = "Hakkımızda Anahtar Kelimeler";
        $sayfa = "Hakkımızda Sayfasındayız";
        return view('hakkimizda')->with('sayfaTitle' , $title)->with('sayfaKeywords' , $keywords)->with('sayfaIsmi' , $sayfa);
    }

    public function iletisim(){
        $title = "İletişim";
        $keywords = "İletişim Anahtar Kelimeler";
        $sayfa = "İletişim Sayfasındayız";
        return view ('iletisim' , compact('title' , 'keywords' , 'sayfa'));
    }

    public function parametreDenemesi($id=null){

        if($id)
        {
            $deger = $id;
        }else{
            $deger = 'Parametre Değeri Bulunmamaktadır';
        }

        $title = "Parametre Denemesi";
        $keywords = "Parametre Denemesi Anahtar Kelimeler";
        $sayfa = "Parametre Denemesi Sayfasındayız";
        return view ('parametredenemesi' , compact('title' , 'keywords' , 'sayfa' , 'deger'));

    }
}

 

Son olarak oluşturduğumuz  anasayfa.blade.php , hakkimizda.blade.php , iletisim.blade.php , parametredenemesi.blade.php sayfalarını düzenlememiz gerekecek. Sadece anasayfa.blade.php sayfasını aşağıdaki gibi yapıyoruz

 

<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title> Ana Sayfa </title>
    <meta name="keywords" content="Ana Sayfa Anahtar Kelimeleri">
</head>
<body>

<a href="{{url('/')}}">Ana Sayfa</a>
<a href="{{url('/hakkimizda')}}">Hakkımızda</a>
<a href="{{url('/iletisim')}}">İletişim</a>
<a href="{{url('/parametreDenemesi')}}">Parametresiz Parametre Denemesi</a>
<a href="{{url('/parametreDenemesi/47')}}">47 Parametreli Parametre Denemesi</a>


<br/><br/><br/>

    Ana Sayfadayız

</body>
</html>

 

hakkimizda.blade.php sayfasını ise aşağıdaki gibi yapalım

 

<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title> {!! $sayfaTitle !!} </title>
    <meta name="keywords" content="{{ $sayfaKeywords }}">
</head>
<body>

<a href="{{url('/')}}">Ana Sayfa</a>
<a href="{{url('/hakkimizda')}}">Hakkımızda</a>
<a href="{{url('/iletisim')}}">İletişim</a>
<a href="{{url('/parametreDenemesi')}}">Parametresiz Parametre Denemesi</a>
<a href="{{url('/parametreDenemesi/47')}}">47 Parametreli Parametre Denemesi</a>


<br/><br/><br/>

    {{$sayfaIsmi}}

</body>
</html>

 

Son olarak   iletisim.blade.php , parametredenemesi.blade.php sayfalarını ise

 

<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title> {!! $title !!} </title>
    <meta name="keywords" content="{{ $keywords }}">
</head>
<body>

<a href="{{url('/')}}">Ana Sayfa</a>
<a href="{{url('/hakkimizda')}}">Hakkımızda</a>
<a href="{{url('/iletisim')}}">İletişim</a>
<a href="{{url('/parametreDenemesi')}}">Parametresiz Parametre Denemesi</a>
<a href="{{url('/parametreDenemesi/47')}}">47 Parametreli Parametre Denemesi</a>


<br/><br/><br/>

{{$sayfa}}

</body>
</html>

 

Ama parametredenemesi.blade.php sayfamıza body tagları içerisinde ki istediğiniz herhangi bir yere

 

<strong>Parametre Değerimiz :</strong> {{$deger}}

 

Kodunu da yerleştirelim ve ne yaptığımızı satır satır açıklamaya başlayalım.

 

Route dosyasındakilerin ne olduklarını zaten biliyorsunuz Controllar ile başlıyoruz. Controllar içerisinde anasayfa fonksiyonuna bakalım

 

return view('anasayfa');

 

Route anasayfa fonksiyonuna yönlendirdiğinde yukarıdaki kod ile istediğimiz view sayfasını return ediyoruz. Öncelikle ilk dikkat etmeniz gereken şey view ismi anasayfa.blade.php olduğu halde biz sadece anasayfa yazıyoruz. Sistemin kendisi .blade.php yazmamıza gerek olmadan zaten view klasörü içerisinde anasayfa dosyamızı buluyor.. Ana Sayfamızda herhangi bir değer göndermeden sadece viewi return etmeyi öğrenmiş bulunuyoruz.

 

Route hakkimizda fonksiyonuna yönlendirdiğinde ise 3 adet değişken oluşturmuşuz ve bunları aşağıdaki kod ile view'e göndereceğiz.

 

return view('hakkimizda')->with('sayfaTitle' , $title)->with('sayfaKeywords' , $keywords)->with('sayfaIsmi' , $sayfa); 

 

yine return view kodu ile hakkimizda sayfasına gideceğini söylüyoruz ama bunun yanında ->with('sayfaTitle' , $title) ile değişkeni de göndereceğimizi söylüyoruz. Parantez içerisinde bulunan $title değeri Controllar içerisinde bulunan değişkenin adı sayfaIsmi değeri ise view de yazdıracağımız değişkenin adı olacaktır. Yani controllar içerisinde bulunan $title değeri view de $sayfaismi olarak gitmesini söylüyoruz.

 

Gördüğünüz gibi 3 adet değişken olduğu için 3 tane ayrı with yazmamız gerekiyor ama bunun da kolay yolu var bunun için iletisim fonksiyonunu incelemeye başlayalım 

 

return view ('iletisim' , compact('title' , 'keywords' , 'sayfa'));

 

iletisim fonksiyonu içerisinde 3 adet ayrı with kullanmak yerine compact kodunu kullanıyoruz. With kullanımında değişkenin adını ayrı sayfada gösterilecek değişkenin adını ayrı ayrı belirtiyorduk biraz önce hakkimizda fonksiyonunda tanımladığımız gibi ama compact fonksiyonunda değişkenin adı Controllar içerisinde ne ise view içerisine de o şekilde göndermek zorunda kalıyoruz.

 

Eğer ki 1 den fazla değişkeniniz var ise ve değişkenin adı controllar içerisinde ne ise viewde de aynı olmasında sakınca yoksa ben compact kodunu el alışkanlığı yapmanızı tavsiye ederim 

 

parametreDenemesi fonksiyonunda ise if ile parametre var mı yok mu diye kontrol edip sonucu $deger değişkenine atıyoruz. iletisim fonksiyonu haricinde $deger değişkenini de viewe göndereceğimizi compact içerisinde belirtiyoruz.

 

Controllar ile veri gönderimini öğrendik şimdi view içerisinde bu değerler nasıl okuyabiliriz onu öğrenelim. anasayfa.blade.php sayfamızda zaten veri gönderimi olmadı o yüzden hakkimizda.blade.php sayfamıza bakalım.

 

hakkimizda.blade.php dosyamızda kullanacağımız değişken adlarını $sayfaTitle , $sayfaKeywords , $sayfaIsmi olarak Controllar içerisinde belirledik. Sayfa içerisinde ki değişkenleri php komutu olan echo ile okuyabiliriz fakat .blade içerisinde böyle birşeye hiç gerek yok :)

 

{!! $degiskenAdi !!} veya {{ $degiskenAdi }} şeklinde view içerisinde değişken okumalarını yapıyoruz.

 

Viewler içerisinde tek yaptığımız şey Controllar içerisinde gönderdiğimiz değerleri okumak. Ayrıyeten ise Viewler içerisinde linkler oluşturduk a href içerisinde link belirlemeyi ise {{ url ('/hakkimizda') }} şeklinde yaptık bu da blade direktiflerinden biri 

 

Bu dersimizde bu kadar anlamadığınız bir yer olursa veya bir hatam varsa lütfen  yorum , sosyal medya veya telefon ile bana ulaşın :) Teşekkürler

 


Yorumlar

Avatar
Oğuzhan ÇAKAR  - 8 Yıl Önce
İyi dilekleriniz ve Takibiniz için ben teşekkür ederim Zeynep Hanım :) Yorumunuz için ben teşekkür ederim Emre Bey :) İyi dilekleriniz için teşekkür ederim Sabit Bey :)
Avatar
sabit   - 8 Yıl Önce
Cok faydalı olmus tesekkur ederim. Cok iyi bir calisma. :)
Avatar
Emre Baran  - 8 Yıl Önce
Çok verimli bi paylaşım emeğinize sağlık teşekkürler
Avatar
Zeynep  - 8 Yıl Önce
Laravel i düşünmeniz acikcasi guzel bi seçim hocam. Yazilarinizi takip ediyorum cok yararli geliyor.teşekkür ediyorum sizlere faydali bilgilerinizi takip ediyor olacağım iyi calismalar :)

Düşünceni Bizimle Paylaş