Vypsání hodnot vrácených SP procedurou a použití redirectu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
karlik26
Člen | 1
+
0
-

Ahoj, probírám se Nette a potřeboval bych zodpovědět tyto otázky:

1. Mám SP proceduru na MYsql, která vrací data ve formátu u tabulky. Jak mohu tato data přiřadit šabloně, abych je mohl vypsat?

2. Mám tabulku a musím vyřešit řazení vzestupně-sestupně dle daných sloupců, společně se zachováním stránkování (jsem na 2 stránce z deseti a změním řazení tabulky, tak abych stále zůstal na 2 stránce z 10 ale s se změněným pořadím ve sloupci). Pokud by existoval jednoduchý příklad bylo by to super. (Hlavně mi jde o to, jak předávat parametry)

3. Pokud jsem dříve v PHP dělal předávání parametru při redirectu standardním způsobem tj:
stranka.php?param1=20&param2=AAA&param3=bbb k musím nadefinovat v routování
pro daný presenter a akci tři nepovinné parametry? tj:
new Route(‚<presenter>/<action>[/<id>][/<id2>][/<id3>]‘, ‚Homepage:default‘);

4. Trošku nerozumím (v serialu začínáme) v ukázkovém presenteru funkcím actionDefault() a renderDefault(). V dokumentaci nikde takové funkce nejsou. Předpokládám správně, že logika je tato?:
Budu-li chtít mít v presenteru akci „VidimDvojmo“ tak v daném presenteru musí existovat

funkce actionVidimDvojmo() která slouží pro práci s modelem

a
funkce renderVidimDvojmo() která slouží pro práci s view?

Přičemž je potřeba dodržovat velikost písmen v názvech ?

Děkuji za odpovědi

Jan Endel
Člen | 1016
+
0
-

Takže postupně:

  1. Žel s SP procedurami nemám zkušenosti, s tím ti bude muset poradit někdo jiný
  2. Použij VisualPaginator ten má persistentní parametry které se předávají napříč requesty
  3. není to potřeba, proměnné které nejsou v routě definovány se předávájí standartním způsobem foo=bar
  4. v presenteru si lze nadefinovat libovolný počet actionFoo() a renderFoo() metod, přičemž tyto metody se zavolají, pokud zavoláš akci foo a do layoutu se ti vloží šablona foo.latte. Co se velikosti týče jediné pravidlo je to, že název akce se v action a render píše velkým, tedy renderFoo() a actionBar(), pokud použiješ camelCase (renderVidimDvojmo()) tak se jedná o akci vidim-dvojmo a přistoupíš na ni (při použití default routeru) http://example.com/…vidim-dvojmo

Mnoho štestí do začátku.

Editoval pilec (27. 2. 2012 23:49)

Etch
Člen | 403
+
0
-

K bodu 4 ještě doplním pilce, že metody actionFoo() a renderFoo() nejsou povinné. Pokud by si do daných metod neměl co dát(například by si v šabloně měl jen čisté html), tak nemusejí být nadefinované. Pokud by tedy chtěl přistoupit ke stránce vidim-dvojmo, tak teoreticky stačí mít pouze šablonu vidimDvojmo.latte.