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; });