Laravel

etiketlenmiş gönderiler

3 Nisan 2019 Çarşamba günü PHP başlığında

Laravel'de PHPUnit Testinde Class env does not exist Hatası

Laravel (5.8)'de test yazarken

php artisan make:test FooTest

ile testi oluşturup

$response = $this->json('POST', '/api/v1/foo/bar', ['param1' => 'value1']);
$response->assertOk()->assertJsonCounts(1, 'reports');

şeklinde talep testi yapabiliyoruz.

Fakat eğer uygulamanızda Telescope kullanıyorsanız şu hatayı almanız muhtemel:

    [message] => Class env does not exist
    [exception] => ReflectionException
    [file] => /.../vendor/laravel/framework/src/Illuminate/Container/Container.php
    [line] => 794

Bu durumda phpunit.xml dosyanıza <env name="TELESCOPE_ENABLED" value="false"/> satırını eklerseniz, Telescope'u test sırasında pasif duruma getirmiş olursunuz. Böylelikle hatayı almayacaksınız.

Kolay gelsin.

Eloquent ORM'de Erişimci ve Mutatörler

30 Mart 2018 Cuma günü PHP başlığında

Eloquent ORM'de Erişimci ve Mutatörler

Laravel ve Eloquent ORM'de Erişimci (Accessors) ve Mutatörleri (Mutators) kullanarak öznitelikleri (Attributes) nasıl biçimlendireceğimizi göreceğiz.

Erişimciler (Accessors)

Erişimciler, veritabanından aldığımız bilgileri/verileri önceden tanımlı olarak biçimlendirmemize olanak tanır. İki tane örnek verelim. Öznitelikleri türkçe olarak örneklendireceğim (elbette ki veritabanını tasarlarken ingilizce kullanmak gerekiyor)

Veritabanımızdaki tabloda ad ve soyad adlı iki adet sütun olduğunu varsayalım. Normal şartlarda veritabanındaki ad soyad bilgisini görüntülemek istediğimizde

Ad Soyad: {{ mb_ucfirst($uye->ad) . ' ' . mb_ucfirst($uye->soyad) }}

şeklinde kullanırız. Ama aşağıdaki gibi bir metodu, modelimize tanımlarsak, işimizi, daha kullanışlı hale getirebiliriz.

Devamını okuyun »
Eloquent ORM'in Tek Başına Kullanımı

28 Mart 2018 Çarşamba günü PHP başlığında

Eloquent ORM'in Tek Başına Kullanımı

Aşağıda Laravel'in varsayılan ORM'i olan Eloquent'in tek başına, Laravel'den bağımsız şekilde kendi projelerimizde nasıl kullanabileceğimizden bahsettim.

Evvela composer paket yöneticisiyle projemizi oluşturalım.

PHP 7 altındaki sürümler için kullanmanız gereken sürüm 5.4 olanı. 5.5 ve üstü olanlar PHP 7 gerektiriyor. Eğer PHP 7 ile çalışacaksanız sürüm belirtmeden gerekliliği indirebilirsiniz.

$ composer require illuminate/database:5.4
Devamını okuyun »
Eloquent İlişkilerinde Koşullu Sorgular

28 Mart 2018 Çarşamba günü PHP başlığında

Eloquent İlişkilerinde Koşullu Sorgular

Aşağıda verdiğim örnekte, Eloquent ile koşullu sorguların ne kadar basit kullanıldığından bahsettim. Örnek içeriği olarak fatura, fatura satırları ve stok kartı üçlüsü üzerinden gittim. Buna birçok yerde ihtiyaç duyulabilir; Kitap ve yazar ilişkilerinde, yorum ve gönderi ilişkilerinde vs.

Elimizde stok kartları (Stock), faturalar (Invoice) ve fatura satırları (InvoiceRow) adında üç adet model olduğunu varsayalım. Stok kartını görüntülemek istediğimizde stok bilgilerinin yanında, mevcut stoğun hangi faturalarda işlem gördüğünü de listelemek gerekecek. Faturalar ve fatura satırları modelleri şöyle olsun:

Invoice.php

// ...
use App\Models\InvoiceRow;

class Invoice extends Model
{
    public function rows()
    {
        return $this->hasMany(InvoiceRows::class);
    }
}
Devamını okuyun »