Selam,
Bugün öğreneceğim konular:
- GET ve POST metodları
- FormBuilder
GET & POST Request
GET
İlk olarak basit bir form oluşturarak başlıyorum.
<form action="dogrulama" method="get"> <label> Kullanıcı: <input type="text" name="kullaniciAdi"/> </label> <br/> <label> Şifre: <input type="password" name="sifre"/> </label> <br/> <input type="submit"/> </form>
Gönder butonuna tıkladığımız zaman “localhost/dogrulama
” url adresine yönlendirilip, GET
metodu ile kullaniciAdi
ve sifre
değerlerimizi taşıyacağız. Bunun içinde routes.php
dosyamızda gerekli kodları ekliyorum.
Route::get("dogrulama", function() { return "Doğrulama sayfasındayım"; });
localhost/dogrulama
sayfasına başarılı bir şekilde ulaştığımızı anlamak için, ufak bir mesaj döndürüyoruz sadece.
Formumuzda kullanıcı ve şifre bölümlerini doldurup, gönder butonuna tıklarsak, localhost/dogrulama
adresine yönlendirileceğiz ve adres çubuğumuz şuna benzeyecektir: localhost/dogrulama?kullaniciAdi=admin&sifre=1234
POST
Böyle bir işlem için GET
metodunun güvenli olmadığını zaten biliyoruz. Şimdi aynı formu POST
metodu ile çalıştıralım.
<form action="dogrulama" method="POST"> <label> Kullanıcı: <input type="text" name="kullaniciAdi"/> </label> <br/> <label> Şifre: <input type="password" name="sifre"/> </label> <br/> <input type="submit"/> </form>
Gönder butonuna tıkladığımız zaman, Laravel’in o güzel hata sayfasının bizi karşılamış olması gerek. Çünkü routes.php
dosyamıza da ufak bir ayar çekmemiz lazımdı. Şimdiye kadar Route
classını sürekli get
metodu ile kullanmıştım ama POST
metodu ile bir veri göndermem gerekiyorsa get
yerine post
metodunu kullanmam gerek. Yani routes.php
dosyamız şu şekilde olmalı:
Route::post("dogrulama", function() { return "Doğrulama sayfasındayım ve POST metodu çalışıyor!"; });
Ve şimdi her şeyin yolunda olması gerek. Ayrıca adres çubuğunda sadece localhost/dogrulama
yazıyor. Böylesi biraz daha güvenli oldu.
Formdan Gelen Verileri Alma
Formumuzdan gelen verileri almak için de klasik yöntemimizi kullanabiliriz.
Route::post("dogrulama", function() { $kullanici = $_POST["kullaniciAdi"]; $sifre = $_POST["sifre"]; return "Kullanıcı: ".$kullanici." şifre: ".$sifre; });
Ya da bunun yerine formdan gelen verileri bir dizi olarakta alabiliriz:
Route::post("dogrulama", function() { var_dump($_POST); });
GET
metodu ile kullanmak istersek $_POST
yerine $_GET
yazmamız yeterli. Ve tabii ki Route::get()
içinde kullanmalıyız.
Formdan gelen veriyi Input
classının get()
metodu ile de alabiliriz. Formu oluştururken input
alanlarına verdiğimiz name
değerlerini metoda argüman olarak göndermemiz yeterli.
$kullaniciAdi = Input::get("kullaniciAdi");
FormBuilder
Bir önceki derste HTMLBuilder
classını öğrenmiştim. View dosyalarını daha pratik şekilde düzenlememe yardım eden fonksiyonlara sahipti. FormBuilder
ile de daha pratik şekilde formlar oluşturabiliriz.
FormBuilder’ın bütün fonksiyonlarına ulaşmak için buraya bir link bırakıyorum. Şimdi yukarıdaki formu bu kez FormBuilder
ile yapıyorum.
{{ Form::open( array("url" => "dogrulama", "method" => "POST") ) }} {{ Form::text("kullaniciAdi", "Varsayılan değer") }} {{ Form::password("sifre") }} {{ Form::submit("Giriş yap") }} {{ Form::close() }}
- Formumuzu oluşturan kodumuzu yazdık.
open()
metoduna dizi olarak bazı elemanlar gönderiyoruz. Zaten dizinin anahtarları ve değerleri ne olduğunu açıklıyor. text
tipinde birinput
alanı oluşturduk. İlk paramatrename
için. Diğer parametreleri göndermesekte olur.- 2. satır ile aynı. Sadece
input
un tipinipassword
yaptık. - Son olarak formumuzu
close()
ile kapatıyoruz.
Bonus olarak bir de select box
yapımını paylaşıyorum:
{{ Form::select("numara", $numaralar) }}
$numaralar
değişkeni, routes.php
den gelen bir diziyi barındırıyor. View dosyalarına veri göndermeyi önceki derslerde öğrendiğim için burada değinmedim.
Sırada Ne Var?
Bugünkü konularım oldukça basitti bence ve kısa sürdü 🙂 Sıradaki derste ise veri tabanı işlemlerini öğreneceğim.
- Veri tabanına bağlanma
- Temel SQL sorguları
- QueryBuilder
Hatırlatma1: Laravel öğrenmek için bu linkteki eğitimi takip ediyorum ve öğrendiklerimi burada paylaşıyorum.Buraya tıklayarak eğitimin anasayfasına ulaşabilir ve kaynak kodlarını indirebilirsiniz.
Hatırlatma2: Lütfen eksik,hatalı ya da düzeltilmesi gereken bir şey farkederseniz bana bildirin.
Yorumlar