- Basit Cevaplar
- Yön Değiştirtmeler (Redirects)
- Görünümler (Views)
- Görünüm Kompozitörleri
- Özel Cevaplar
Rotalardan String Döndürme
Route::get('/', function()
{
return 'Merhaba dünya!';
});
Özel Cevaplar Oluşturma
Bir cevap (Response
) olgusu Symfony\Component\HttpFoundation\Response
sınıfından türer ve HTTP cevapları oluşturmak için çeşitli metodlar sağlar.
$cevap = Response::make($contents, $statusCode);
$cevap->header('Content-Type', $deger);
return $cevap;
Cevaplara Çerez Bağlanması
$cerez = Cookie::make('isim', 'deger');
return Response::make($content)->withCookie($cerez);
Bir Yön Değiştirtme Döndürme
return Redirect::to('uye/giris');
Flaş Veri Eşliğinde Bir Yön Değiştirtme Döndürme
return Redirect::to('uye/giris')->with('mesaj', 'Giriş başarısız!');
İsimli Bir Rotaya Yön Değiştirme Döndürme
return Redirect::route('giris');
Parametre Geçerek İsimli Bir Rotaya Yön Değiştirme Döndürme
return Redirect::route('profil', array(1));
İsimli Parametre Kullanarak İsimli Bir Rotaya Yön Değiştirme Döndürme
return Redirect::route('profil', array('uye' => 1));
Bir Kontrolör Eylemine Yön Değiştirme Döndürme
return Redirect::action('HomeController@index');
Parametre Geçerek Bir Kontrolör Eylemine Yön Değiştirme Döndürme
return Redirect::action('UserController@profil', array(1));
İsimli Parametre Kullanarak Bir Kontrolör Eylemine Yön Değiştirme Döndürme
return Redirect::action('UserController@profil', array('uye' => 1));
Görünümler tipik olarak uygulamanızın HTML'sini içerirler ve kontrolörünüzün ve etki alanı mantığınızın gösterim mantığınızdan ayrı tutulmasının uygun bir yoludur. Görünümler app/views
dizininde saklanmaktadır.
Basit bir görünüm şuna benzer:
<!-- Görünüm app/views/selamlama.php dosyasında bulunsun-->
<html>
<body>
<h1>Merhaba <?php echo $isim; ?></h1>
</body>
</html>
Bu görünüm web tarayıcısına şu şekilde döndürülebilir:
Route::get('/', function()
{
return View::make('selamlama', array('isim' => 'Taylor'));
});
View::make
metodundaki ikinci parametre görünümde kullanılması gereken bir veri dizisidir.
Görünümlere Veri Geçilmesi
$view = View::make('selamlama', $veri);
$view = View::make('selamlama')->with('isim', 'Sinan');
Yukarıdaki örnekte $isim
değişkeni görünümden erişilebilir olacak ve Sinan
bilgisini taşıyacaktır.
Bir parça veriyi tüm görünümler arasında paylaşmanız da mümkündür:
View::share('isim', 'Sinan');
Bir Görünüme Bir Alt Görünüm Geçirilmesi
Bazen bir görünümü başka bir görünümün içine geçirmek isteyebilirsiniz. Örneğin, app/views/evlat/view.php
'de saklanan belli bir görünüm olsun ve biz bunu şu şekilde başka bir görünüme geçirebiliriz:
$view = View::make('selamlama')->nest('evlat', 'evlat.view');
$view = View::make('selamlama')->nest('evlat', 'evlat.view', $veri);
Bundan sonra bu alt görünüm ebeveyn görünümde gösterilebilir:
<html>
<body>
<h1>Merhaba!</h1>
<?php echo $evlat; ?>
</body>
</html>
Görünüm kompozitörleri görünüm oluşturulduğu zaman çağrılan bitirme fonksiyonları veya sınıf metodlarıdır. Eğer belli bir görünüm, uygulamanız boyunca her oluşturulduğunda bu görünüme bağlamak istediğiniz bir veri varsa, bir görünüm kompozitörü kodun tek bir yere koyulabilmesi imkanı verebilir. Bu nedenle, görünüm kompozitörleri "görünüm modelleri" veya "sunum yapıcı" gibi iş görürler.
Bir Görünüm Kompozitörü Tanımlanması
View::composer('profil', function($view)
{
$view->with('navigasyon', Sayfa::all());
});
Şimdi profil
görünümü her oluşturulduğunda, navigasyon
verisi bu görünüme bağlanacaktır.
Bir görünüm kompozitörüne bir defada birden çok görünüm bağlamanız da mümkündür:
View::composer(array('profil','pano','bildirim'), function($view)
{
$view->with('navigasyon', Sayfa::all());
});
Not: Görünüm Kompozitörlerini tüm sayfalara bağlamanız gerektiğinde, dizi olarak tüm sayfaları tek tek vermek yerine,
layout
olarak kullandığınız görünümünü verebilirsiniz. Böylece o layoutu extend eden her sayfa otomatik olarak kompozitörden gelen verilere ulaşabillir.
Bunun yerine sınıf tabanlı bir kompozitör kullanmak isterseniz, ki uygulama IoC Konteyneri ile çözümlenebilme yararı sağlar, şöyle yapabilirsiniz:
View::composer('profil', 'ProfileComposer');
Bir görünüm kompozitörü sınıfı şöyle tanımlanmalıdır:
class ProfileComposer {
public function compose($view)
{
$view->with('adet', Uye::count());
}
}
Kompozitör sınıfının nerede saklanacağı konusunda bir adet olmadığına dikkat edin. composer.json
dosyanızdaki yönergeleri kullanarak otomatik yüklenebildikleri sürece, bunları istediğiniz yerde depolayabilirsiniz.
Bir JSON Cevabı Oluşturma
return Response::json(array('isim' => 'Sinan', 'il' => 'Bursa'));
Bir JSONP Cevabı Oluşturma
return Response::json(array('isim' => 'Sinan', 'il' => 'Bursa'))->setCallback(Input::get('callback'));
Bir Dosya İndirme Cevabı Oluşturma
return Response::download($indirilecekDosyaYolu);
return Response::download($indirilecekDosyaYolu, $isim, $basliklar);