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