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;
});
versiyon: 4.0