LINUX & DEV PORADNA

  1. Vyřešeno (1 odpovědí)
    1
    1

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

    napsal BeesWaX do kategorie "programovani"
    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
    Bez přílohy
    • Zkontrolováno
      2
      2

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

      odpověděl Superuser: Hanz
      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;
      
      }
      
      Bez přílohy
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