Tip Dönüşümü
Nette Veritabanı, veritabanından alınan değerleri otomatik olarak uygun PHP türlerine dönüştürür.
Tarih ve Saat
Tarih ve saat değerleri Nette\Utils\DateTime
nesnelerine dönüştürülür. Tarih ve saat değerlerinin
değişmez Nette\Database\DateTime
nesnelerine dönüştürülmesini tercih ediyorsanız, yapılandırmada newDateTime
seçeneğini
etkinleştirin.
$row = $database->fetch('SELECT created_at FROM articles');
echo $row->created_at instanceof DateTime; // true
echo $row->created_at->format('j. n. Y');
MySQL için TIME
veri türü DateInterval
nesnelerine dönüştürülür.
Boolean Değerleri
Boolean değerleri otomatik olarak true
veya false
olarak normalleştirilir. MySQL'de, yapılandırmada convertBoolean
seçeneği
etkinleştirildiğinde TINYINT(1)
türü dönüştürülür.
$row = $database->fetch('SELECT is_published FROM articles');
echo gettype($row->is_published); // 'boolean'
Sayısal Değerler
Sayısal değerler, veritabanındaki sütun türüne bağlı olarak int
veya float
adresine
aktarılır:
$row = $database->fetch('SELECT id, price FROM products');
echo gettype($row->id); // tamsayı
echo gettype($row->price); // şamandıra
Özel Normalizasyon
Veritabanı satırlarını setRowNormalizer(?callable $normalizer)
yöntemini kullanarak dönüştürmek için
özel bir işlev tanımlayabilirsiniz. Bu, örneğin otomatik veri türü dönüştürme için kullanışlıdır.
$database->setRowNormalizer(function(array $row, ResultSet $resultSet): array {
// veri türü dönüşümü burada gerçekleşir
return $row;
});