PHP Nette - jak upravit data z databáze před odesláním do šablony

01.04.2018 napsal BeesWaX dotaz do kategorie programovani
24 /
programovani

PHP Nette - jak upravit data z databáze před odesláním do šablony

Vyřešeno

programovani php nette databaze

Ahoj, jsem úplný začátečník s PHP Nette, prošel jsem celý návod jak udělat jednoduchý web, to mi funguje. Ten návod ale neřeší jak postupovat, když potřebuji data z databáze upravit před odesláním do latte šablony. Nevím jak to udělat a jak vlastně správně postupovat. Poradíte někdo jak ty data z databáze před odesláním upravit? Díky

02.04.2018 odpověděl Hanz Superuser
[1]
Zkontrolováno

Ahoj,

níže nalezneš základní PHP kostru pro Nette (jedna z mnoha), kdy můžeš data z databáze před odesláním do šablony Latte libovolně upravovat.

Správně bys ty data měl upravovat v modelu, ale pro zjednodušení to uděláme v presenteru.

Popis principu:
Všechna data z tabulky načteš v presenteru/modelu do pole a to pole rovnou zpracuješ cyklem foreach a upravíš hodnoty jak potřebuješ (použival jsi určite doposud při výpisu z MySQL databáze běžně). Pole s daty až pak posíláš do šablony latte a tam je projedeš zase cyklem foreach při vypsání.


public function renderDetail($id)
{
        //nacist vsechny zaznamy z databaze do pole
        $zaznamy = $this->database->fetchAll('SELECT * FROM tabulka');

        //upravit data
        foreach ($zaznamy as $id => $row)
        {
                   //ulozeni vystupu do pole
                    $zaznamyArr[] = (object) [
                                'nazev'      => $row['nazev'],
                                'popis'      => $row['popis'],
                                'castka'     => $row['castka'],
                                'dastkaDPH'  => $row['castka'] * 1.21,
                                'datum'      => $row['datum'],
                                ];

        }

        // poslat upravena data do sablony:
        $this->template->zaznamy = $zaznamyArr;

}

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace