Nette Documentation Preview

syntax
Tip Dönüşümü
************

.[perex]
Nette Veritabanı, veritabanından alınan değerleri otomatik olarak uygun PHP türlerine dönüştürür.


Tarih ve Saat .[#toc-date-and-time]
-----------------------------------

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 | configuration] `newDateTime` seçeneğini etkinleştirin.

```php
$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 .[#toc-boolean-values]
----------------------------------------

Boolean değerleri otomatik olarak `true` veya `false` olarak normalleştirilir. MySQL'de, [yapılandırmada | configuration] `convertBoolean` seçeneği etkinleştirildiğinde `TINYINT(1)` türü dönüştürülür.

```php
$row = $database->fetch('SELECT is_published FROM articles');
echo gettype($row->is_published); // 'boolean'
```


Sayısal Değerler .[#toc-numeric-values]
---------------------------------------

Sayısal değerler, veritabanındaki sütun türüne bağlı olarak `int` veya `float` adresine aktarılır:

```php
$row = $database->fetch('SELECT id, price FROM products');
echo gettype($row->id);    // tamsayı
echo gettype($row->price); // şamandıra
```


Özel Normalizasyon .[#toc-custom-normalization]
-----------------------------------------------

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.

```php
$database->setRowNormalizer(function(array $row, ResultSet $resultSet): array {
	// veri türü dönüşümü burada gerçekleşir
	return $row;
});
```

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