Tip Dönüşümü
Nette Database, veritabanından döndürülen değerleri otomatik olarak karşılık gelen PHP tiplerine dönüştürür.
Tarih ve Saat
Zaman verileri Nette\Utils\DateTime nesnelerine dönüştürülür. Zaman verilerinin değişmez (immutable)
Nette\Database\DateTime nesnelerine dönüştürülmesini istiyorsanız, yapılandırmada newDateTime seçeneğini true olarak
ayarlayın.
$row = $database->fetch('SELECT created_at FROM articles');
echo $row->created_at instanceof DateTime; // true
echo $row->created_at->format('j. n. Y');
MySQL durumunda, TIME veri tipi DateInterval nesnelerine dönüştürülür.
Boolean Değerler
Boolean değerler otomatik olarak true veya false değerlerine dönüştürülür. MySQL için, yapılandırmada convertBoolean ayarını yaparsak
TINYINT(1) 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 tipine göre int veya float değerlerine
dönüştürülür:
$row = $database->fetch('SELECT id, price FROM products');
echo gettype($row->id); // integer
echo gettype($row->price); // float
Özel Normalleştirme
setRowNormalizer(?callable $normalizer) metodunu kullanarak veritabanından gelen satırları dönüştürmek
için kendi fonksiyonunuzu ayarlayabilirsiniz. Bu, örneğin veri tiplerinin otomatik dönüşümü için kullanışlıdır.
$database->setRowNormalizer(function(array $row, ResultSet $resultSet): array {
// burada tip dönüşümü gerçekleşir
return $row;
});