Nette\Database: Parametry fetchPairs()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- hrach
- Člen | 1838
Je to v poradku. Byla provedena dekompozice PDOStatement, takze nyni je jina
trida, ktera ma novou implementaci fetch pairs, stejnou, jako mela trida
Selection. Vzhledem k tomu, ze se pracuje s objektem Row, je mozne volat dane
sloupce ciselnymi indexy. fetchPairs(0, 1)
. (aspon doufam, nikdy
jsem to nezkousel, ale takto by to melo fungovat:) )
- miler
- Člen | 75
Aha, děkuji. A ještě bych se chtěl zeptat:
Takovýto zjednodušený dotaz:
$this->connection->table('calendar')
->where('type_id', $type);
Kde $type vybírá (zjednodušeně, v originále je tam join):
$this->connection->query('
SELECT id
FROM type')
->fetchAll();
mi dříve generoval toto:
SELECT `id`
FROM `calendar`
WHERE (`type_id` IN (2, 11, 12) )
a teď provádí tohle:
SELECT `id`
FROM `calendar`
WHERE (`type_id` IN ((`id` = 2), (`id` = 11), (`id` = 12)))
Mohl bys mi prosím říct jak to mám udělat správně? Ještě jednou díky.
Editoval miler (30. 5. 2013 15:33)
- hrach
- Člen | 1838
V podstate je divne, ze to fungovalo. Protoze struktura tohoto volani
$this->connection->query('
SELECT id
FROM type')
->fetchAll()
je
array(
array('id' => 1),
array('id' => 2),
array('id' => 3),
)
Asi bych to resit:
$types = $factory->table('type'); // ->where(...)
$calendar = $factory->table('calendar')->where('type', $types);