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