Jak odstranit řádek z výběru, pokud je primární klíč více, než jeden sloupeček?
- fary
- Člen | 155
Jak bych mohl ze selection odstranit nepotřebné řádky v případě, že tabulka pro primární klíč definuje více, než jeden sloupeček? Pomocí Nette\Database\Table\Selection::offsetUnset() se mi to nedaří, protože argument musí být řetězec. Bylo by dobré, kdyby se tam dalo vložit pole, něco jako ‚array('row_a‘ ⇒ 1, ‚row_b‘ ⇒ 2)'. Existuje nějaký způsob, jak se takových sloupečků ze selection zbavit?
- fary
- Člen | 155
Myslím, že už jsem na to přišel. Když použijete
Nette\Database\Table\Selection::fetchAll()
, získáte pole
jednotlivých řádků. Indexy, na kterých tyto jednotlivé řádky jsou, jsou
pojmenovány podle primárních klíčů v tomto tvaru:
pk1[|pk2[|pkn]]
, tedy např: 1|2
, takže pokud
potřebujete z výběru odmazat, použijte např:
Nette\Database\Table
Selection::offsetUnset(‚1|2‘)`.