NDB problem so zapisom where obsahujuce array
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute, som si zakrualizoval Nette dev 2.1, a zapis ktrory mi doteraz siel, tak uz nejde, neviete mi poradit ako sa to teraz zapisuje?
$relatedProductList = array(11,22,33);
$productList->where('id NOT IN (?)', $relatedProductList);
vracia mi to:
Column operator does not accept array argument.
@enumag ma upozornil na toto:Database: SqlBuilder::addWhere() consider NOT , ale v tom to neni lebo aj ked nepouzijem NOT, tak mam tu istu hlasku. Neviete niekto ako na to?
- hrach
- Člen | 1838
@duskohu: tomu neverim. ted jsem si to pridal to testu a funguje to spravne.
je treba jeste zminit logiu:
$productList->where('NOT id', $relatedProductList);
nerika, jaky operator se ma pouzit, takze pokud treba bude $relatedProductList boolean, tak se v postgre pouzije IS TRUE.- pokud chces vynutit operator pro pole, pouzij
$productList->where('NOT id IN', $relatedProductList);
// respektive
$productList->where('NOT id IN ?', $relatedProductList);
Vim o te nejednote, s jakym to zpracovava Statement, ctelo by to sjednotit, asi idealne tak, ze se to presune cele to zpracovani poli do Sqlprocesoru.