Úprava dat z DB ještě před vykreslením

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
lopikol
Začátečník | 75
+
0
-

V tabulce mám uložené informace o velikosti daného souboru v Bytech. Rád bych tento sloupec upravil ještě před vykreslením → převedl ho na MB. Sloupac se jmenuje size. Mohl by mi někdo poradit, jak na to děkuji.

<?php
public static function findAll()
{
        return dibi::fetchAll('SELECT * FROM [downloads] ORDER BY [id]', dibi::DESC);
}

public function renderDefault()
{
        $this->template->files = DownloadsModel::findAll();// získání všech souborů
}
?>
Mikulas Dite
Člen | 756
+
0
-

Ukládal bych buď rovnou MB, nebo to nechal na databázi:

return dibi::fetchAll('SELECT *, Round([size] / 1000 / 1000, 2) AS [size] FROM [downloads] ORDER BY [id]', dibi::DESC);

případně 1024.

lopikol
Začátečník | 75
+
0
-

Díky. Funguje to jak má.

Šaman
Člen | 2635
+
0
-

Případně načítat v bytech, ale vykreslovat pomocí makra (které to převede na jednotky jaké požaduješ a ještě k tomu třeba přidá MB). Výhoda je v tom, že makro může být i složitější a vrátí místo 1200MB rovnou 1,2GB.

Michalek
Člen | 210
+
0
-

Je to helper a jmenuje se bytes :) https://latte.nette.org/cs/filters#…

Editoval Michalek (23. 1. 2011 2:06)

lopikol
Začátečník | 75
+
0
-

Michalek: Super. Je to opravdu skvělá věc. Stačí 5 písmenek a co to dokáže :)