Jak zkontrolovat před výpisem pole?

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

Ahoj,
v presenteru mám do pole uložené údaje vytažené z db a pak je posílám to template klasickým způsobem $this->template->array = $array. V šabloně pak vypisuji foreachem. Vše jde v pořádku, pokud pole není prázdné. Jak zkontrolovat jestli je pole prázdné a když jo, tak v šabloně vypsat že pole neobsahuje žádné údaje? zkoušel jsem

if(!empty($array)

Ale to mě nefunguje.
Díky

David Kudera
Člen | 455
+
+2
-

V šabloně by mělo normálně fungovat

{if !empty($array)}
	...
{/if}
japlavaren
Člen | 404
+
0
-

na prazdne pole mozes pouzit automaticke pretypovanie a skrateny zapis, tj:

{if !$array}
	...
{/if}
xciza
Člen | 194
+
0
-

No, zkusil jsem obě verze, ale nedělá to, to co by mělo. Když použiji

{if !empty($array)}
//vypsání pole
{else}
 Pole je prazne.
{/if}

a pole je prazne tak stranka je prazdna a nevykona se vetev {else}. Když použiju

{if !$array}

tak se vždy vykoná větev {else}

Editoval xciza (14. 8. 2014 20:51)

CZechBoY
Člen | 3608
+
0
-

To je blbost, mě to funguje.
Pošli kody.

David Kudera
Člen | 455
+
0
-

Dej si tam buď {dump $array} nebo si to jinak debuguj ať vidíš, co přesně v tom poli je pro jistotu (pro oba případy)

Editoval David Kudera (14. 8. 2014 21:09)

xciza
Člen | 194
+
0
-

Presenter:

$rows = $this->item->getAllItems();

Model:

public function getAllItems() {
             return $this->database->table('item')->fetchAll();

     }

a v template `foreach `výše

David Kudera
Člen | 455
+
0
-

No jestli tam ale dáváš takhle data přímo z db, tak to nevrací array. Nebo jo? Zkus to vyměnit za count($array). Jen se ptám, nette database jsem nějakou dobu nepoužil