Latte – práca s Database\Selection – if empty

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

Zdravím,

je v Latte nejaká predpripravená funkcia (v dokumentácii som nenašiel, teda okrem tohto: https://forum.nette.org/…latte-subore, ale empty na object mi false nevyhodí) na kontrolu, či je Database\Selection prázdny alebo mi zostáva len využívať funkciu count() (viď príklad)?

{if count($records) > 0}
...
{/if}

Respektíve, existuje „vhodnejšia/správnejšia“ metóda? Vďaka :).

johnnie
Člen | 54
+
0
-

count na selection urcite nepouzivaj, je daleko výhodnejsie použit ->count(‚*‘), ktory posle do databaze agregacni dotaz

SELECT COUNT(*) FROM records

ja v latte overujem nasledovne

<?php

{if $records->count('*') == 0}

// 2 cesta
{if !$records->count('*')}

// pokial mame 1 a viac zaznamov
{if $records->count('*') > 0}

?>

Editoval johnnie (2. 3. 2017 16:13)

Mysteria
Člen | 797
+
0
-

$records->count() je ale to samé jako count($records), ne? Pokud chceš COUNT(‚*‘) dotaz, tak je to $records->count('hvezdicka_nejde_mi_tam_dat').

Lkopo
Člen | 65
+
0
-

Ten agregačný dotaz sa do databázy pošle len v prípade ak nastavím stĺpec ako parameter v metóde count($column) (podľa API). Vďaka za radu, pôjdem touto cestou :).

A áno, podľa API je to viacmenej to isté, ale správnejšie mi príde použiť metódu count ako defaultnú PHP funkciu.

Editoval Lkopo (2. 3. 2017 16:03)

johnnie
Člen | 54
+
0
-

Mysteria napsal(a):

$records->count() je ale to samé jako count($records), ne? Pokud chceš COUNT(‚*‘) dotaz, tak je to $records->count('hvezdicka_nejde_mi_tam_dat').

ano mas pravdu v popise som to napisal spravne ale v kode som to napisal bez :/ opravim