fetchPairs() s float klíčem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Kamil Valenta
- Člen | 846
Ahoj.
Nevím, zda to považovat za bug Nette, ona je to trochu vlastnost PHP, ale
působí to hůř odhalitelné chyby a Nette by to mohlo snadno řešit.
Pokud mám DB tabulku:
| key INT | val STRING |
| 1 | foo |
| 2 | bar |
Následně zavolám table()->fetchPairs(‚key‘, ‚val‘);
Dostanu pole dle očekávání:
Array (
1 ⇒ foo,
2 ⇒ bar
)
Problém nastane, když bude klíč typu float, protože PHP umí klíče jen celočíselné nebo textové.
| key FLOAT | val STRING |
| 1.0 | foo |
| 1.5 | bar |
Po fetchPairs() dostanu neočekávané pole:
Array (
1 ⇒ bar
)
Stačilo by, kdyby fetchPairs() při floatovém klíči zapisovalo do pole např. pod indexem ['\'' . $key . '\''], tím se float klíč zachová, protože bude interpretován jako string.
Je to hloupost?