Laravel Validator Hatalarını Gösterme (Validator Fails Response)

Bugün validator ile geri döndürmeyi anlatmaya çalışacağım hızlıca. İlk önce hedefimiz validator vasıtasıyla formdan gelen verileri hızlıca test edip varsa bunun hatasını kullanıcıya sunmak istiyoruz. Örneğin tc kimlik numarası diye textbox’ımız olsun. bunu 11 değilde 12 haneli doldurduklarında karşılarına çıkacak mesajı göstereceğiz.

Hemen hangi controllerda kullanacaksak onun fonksiyonuan gelip şunları yazıyoruz;

<code> $validator = Validator::make($request->all(), [
            'tc' => ['required','numeric'],
            'isim' => ['required','string', 'max:50'],
            'soyisim' => ['required','string', 'max:50'],
            'birlik' => ['required'],
            'tertip' => ['required'],
]);</code>

Gördüğünüz gibi tc adlı değerimiz gerekli ve numara olmak zorunda, isim değişkenimiz gerekli, string ve maksimum 50 karakter olmakta. (tcyi 11 haneli yazmamışım onu dert etmeyin onu siz ekleyin. Şimdi ise bunlarda bi hata varsa nereye gideceğini belirtiyoruz.

<code>if ($validator->fails()) {
          $errors = $validator->errors()->first();
          return view('uyeekle')->with('error',$errors);
        }</code>

hemen bir errors değişkeni içine validatorden gelen ilk hatayı atıyoruz ve bunu uyeekle.blade.php sayfasına error değişkeni adıyla yolluyoruz. Şimdi uyeekle.blade.php dosyasına gelip diyoruz ki sana error diye bir değişkenle gelinirse onu yaz. bunu da aşağıdaki kod vasıtasıyla yapıyoruz;

<code> @if(isset($error))
                &lt;div class='alert alert-danger alert-dismissible'>
                    &lt;h4>Sonuç Ekranı&lt;/h4>
                    &lt;p>{{$error}}&lt;/p>
                &lt;/div>
            @endif</code>

Artık kendi hata stilinize göre error değişkeninin başka yerde yazdırırsınız. Ama şunu unutmayın if ve p içinde yazan error mutlaka olmak zorunda.

Laravel Kurulumu #2

Bir önceki yazılarımda laravel kurulumu anlatmıştım. Bu sefer composer üzerinden hem indirip hem kurmayı göstereceğim. Zaten basit bir şey. Composer olayını önceden çözenler için boş ama çözmeyenler için çok güzel bilgi olduğunu düşünüyorum.

İlk önce composer indiriyoruz. sonra cmd veya phpstorm terminalinden aşağıdaki kodu yazıyoruz.

<code>composer create-project --prefer-dist laravel/laravel </code>

hepsi bu kadar. eğer bir alt klasördeki dizine kurmak istersek;

<code>composer create-project --prefer-dist laravel/laravel deneme</code>

Böyle de deneme klasörüne laravel kurmuş olduk.

Laravel Barkod Oluşturma

Bugün laravel eklentilerinden barkod oluşturma eklentisini anlatmaya çalışacağım. Kullanacağımız eklentinin adı Picqer, adresi ise buradaki linkte yatmaktadır.

Çok basit kullanışlı bir eklenti. Kurulumu için direk composer ekranına,

<code>composer require picqer/php-barcode-generator</code>

yazıyoruz. Kurulum tamamlandıktan sonra herhangi bir controller açıp, sayfanın en üstüne

<code>use Picqer;</code>

yazıyoruz. Sonra aynı controller’da oluşturduğumuz fonksiyonlardan birine;

<code>$generator = new Picqer\Barcode\BarcodeGeneratorHTML();
echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_128);</code>

Hepsi bu kadar. Ama yok bana type_code_128 yetmez 39 olan lazım dersen onun da listesini aşağıya ekliyorum;

<code>TYPE_CODE_39
TYPE_CODE_39_CHECKSUM
TYPE_CODE_39E
TYPE_CODE_39E_CHECKSUM
TYPE_CODE_93
TYPE_STANDARD_2_5
TYPE_STANDARD_2_5_CHECKSUM
TYPE_INTERLEAVED_2_5
TYPE_INTERLEAVED_2_5_CHECKSUM
TYPE_CODE_128
TYPE_CODE_128_A
TYPE_CODE_128_B
TYPE_CODE_128_C
TYPE_EAN_2
TYPE_EAN_5
TYPE_EAN_8
TYPE_EAN_13
TYPE_UPC_A
TYPE_UPC_E
TYPE_MSI
TYPE_MSI_CHECKSUM
TYPE_POSTNET
TYPE_PLANET
TYPE_RMS4CC
TYPE_KIX
TYPE_IMB
TYPE_CODABAR
TYPE_CODE_11
TYPE_PHARMA_CODE
TYPE_PHARMA_CODE_TWO_TRACKS</code>

Ben resim tipini de değiştirmek istiyorum, svg istiyorum, png istiyorum derseniz onun da listesini aşağıya ekliyorum;

<code>$generatorSVG = new Picqer\Barcode\BarcodeGeneratorSVG();
$generatorPNG = new Picqer\Barcode\BarcodeGeneratorPNG();
$generatorJPG = new Picqer\Barcode\BarcodeGeneratorJPG();
$generatorHTML = new Picqer\Barcode\BarcodeGeneratorHTML();</code>

Bir de html örneği isterseniz;

<code>$generator = new \Picqer\Barcode\BarcodeGeneratorPNG();
echo '&lt;img src="data:image/png;base64,' . base64_encode($generator->getBarcode('081231723897', $generator::TYPE_CODE_128)) . '">';</code>

Şimdi bazılarınız şunu diyebilir, olum sen adamın sitesindeki buraya geçirmişsin, zaten orada yazıyor diye. Evet orada bulunan beni oku dosyasını çok basit bir şekilde Türkçeleştirerek anlattım. Maksat Türkçe kaynak oluşsun. Sıkıntı yaşayan olursa yazsın. Güzel kodlamalar…

Json ile gelen veriyi Jquery ile İşleme

Bu yazıyı askerden sizlere yazıyorum. Umarım işinizi görür.

Öncelikli amacımız json çıktısı olarak gelen 10 veya artık kaç taneyse tek tek ayırmakla uğraşmadan ilgili divleri atamayı göstereceğim. Örneğin json çıktımız şöyle olsun;

<code>{
  "toplam_yiyen": 1,
  "toplam_kisi": 10,
  "hizmet_yiyen": 1,
  "hizmet_kisi": 6,
  "guvenlik_yiyen": 0,
  "guvenlik_kisi": 0,
  "ulastirma_yiyen": 0,
  "ulastirma_kisi": 1,
  "ucaksavar_yiyen": 0,
  "ucaksavar_kisi": 3,
  "istihkam_yiyen": 0,
  "istihkam_kisi": 0
}</code>

Hemen script kodları içine şunları yazıyoruz;

<code>$.getJSON("http://localhost/yemekhane/istatistikler/son.json",function(json){
$("#toplam_toplam").html(json.toplam_kisi);
$("#toplam_yiyen").html(json.toplam_yiyen);
$("#guvenlik_toplam").html(json.guvenlik_kisi);
$("#guvenlik_yiyen").html(json.guvenlik_yiyen);
$("#hizmet_toplam").html(json.hizmet_kisi);
$("#hizmet_yiyen").html(json.hizmet_yiyen);
$("#ulastirma_toplam").html(json.ulastirma_kisi);
$("#ulastirma_yiyen").html(json.ulastirma_yiyen);
$("#istihkam_toplam").html(json.istihkam_kisi);
$("#istikam_yiyen").html(json.istihkam_yiyen);
$("#ucaksavar_toplam").html(json.ucaksavar_kisi);
$("#ucaksavar_yiyen").html(json.ucaksavar_yiyen);
});</code>

$(“#isim”) yazan yerler ilgili div’imizin idleri. Yani toplam_toplam idsine sahip divin içine json verisinin içinde yer alan toplam_kisi değerini aktarıyoruz. Hepsi bu kadar.