Tür Dönüşümü
Nette Database, veritabanından dönen değerleri karşılık gelen PHP türlerine otomatik olarak dönüştürür.
Tarih ve Saat
Zaman değerleri Nette\Utils\DateTime nesnelerine dönüştürülür. Zaman değerlerinin değişmez
Nette\Database\DateTime nesnelerine dönüştürülmesini istiyorsanız, yapılandırmada newDateTime seçeneğini
true yapı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'de TIME veri türü DateInterval nesnelerine dönüştürülür.
Boolean Değerler
Boolean değerler otomatik olarak true ya da false değerine dönüştürülür. MySQL'de, yapılandırmada convertBoolean ayarlanırsa
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 türüne göre int ya da float değerine
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) metoduyla, veritabanından gelen satırları dönüştürmek için özel
bir fonksiyon ayarlayabilirsiniz. Bu, örneğin otomatik veri türü dönüşümü için işe yarar.
$database->setRowNormalizer(function(array $row, ResultSet $resultSet): array {
// tür dönüşümü burada gerçekleşir
return $row;
});