Μετατροπή τύπου
Η Nette Database μετατρέπει αυτόματα τις τιμές που ανακτώνται από τη βάση δεδομένων στους κατάλληλους τύπους PHP.
Ημερομηνία και ώρα
Οι τιμές ημερομηνίας και ώρας μετατρέπονται σε αντικείμενα
Nette\Utils\DateTime
. Αν προτιμάτε οι τιμές ημερομηνίας και ώρας να
μετατρέπονται σε αμετάβλητα αντικείμενα Nette\Database\DateTime
,
ενεργοποιήστε την επιλογή newDateTime
στη ρύθμιση
παραμέτρων.
$row = $database->fetch('SELECT created_at FROM articles');
echo $row->created_at instanceof DateTime; // true
echo $row->created_at->format('j. n. Y');
Για τη MySQL, ο τύπος δεδομένων TIME
μετατρέπεται σε αντικείμενα
DateInterval
.
Τιμές Boolean
Οι τιμές Boolean κανονικοποιούνται αυτόματα σε true
ή false
.
Στη MySQL, ο τύπος TINYINT(1)
μετατρέπεται όταν η επιλογή
convertBoolean
είναι ενεργοποιημένη στη ρύθμιση
παραμέτρων.
$row = $database->fetch('SELECT is_published FROM articles');
echo gettype($row->is_published); // 'boolean'
Αριθμητικές τιμές
Οι αριθμητικές τιμές μετατρέπονται σε int
ή float
, ανάλογα
με τον τύπο της στήλης στη βάση δεδομένων:
$row = $database->fetch('SELECT id, price FROM products');
echo gettype($row->id); // integer
echo gettype($row->price); // float
Προσαρμοσμένη κανονικοποίηση
Μπορείτε να ορίσετε μια προσαρμοσμένη συνάρτηση για τον
μετασχηματισμό των γραμμών της βάσης δεδομένων χρησιμοποιώντας τη
μέθοδο setRowNormalizer(?callable $normalizer)
. Αυτό είναι χρήσιμο, για
παράδειγμα, για την αυτόματη μετατροπή τύπων δεδομένων.
$database->setRowNormalizer(function(array $row, ResultSet $resultSet): array {
// η μετατροπή τύπου δεδομένων γίνεται εδώ
return $row;
});