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;
});
versiyon: 4.x