Oznámení
Omlouváme se, provoz fóra byl ukončen
feature request: dibifluent a where(true)
Upozornění: Tohle vlákno je hodně staré.
před 10 lety
- Honza M.
- Člen | 1674
Potřeboval bych pomocí DibiFluentu udělat takovou docela komplikovanou
podmínku, jejíž jednotlivé části mohou a nemusí být definované. Napadlo
mě to řešit pomocí ->where(true)
a volitelné podmínky
přidávat jako ->add(...)
. Pro ilustraci napíšu kód:
$q = $db->select("*")->from("news")->where(true);
if (isset($language)) $q->and("language = %s", $language);
if (!$includeFuture) $q->and("date <= now()");
Problém je v tom, že ->where(true)
se přeloží jako
where
místo nějakého where 1 = 1
. Nebo je nějaký
lepší způsob, jak zadat takovou podmínku?
před 10 lety
- David Grudl
- Nette Core | 6806
Že by
dibi::select("*")->from("news")->where('1=1');
;)
před 10 lety
- phx
- Člen | 652
Takto by to tamy melo jit.
$q = $db->select("*")->from("news");
if (isset($language)) $q->where("language = %s", $language);
if (!$includeFuture) $q->where("date <= now()");
před 10 lety
- Honza M.
- Člen | 1674
dibi::select("*")->from("news")->where('1=1');
Ano, tak to mám. Ale where(true)
považuju za hezčí, protože
mě napadlo dřív :-D
phx
Zkusím.