Nette\Database a chyba „Invalid argument supplied for foreach()“
- tomas.lang
- Člen | 53
Zdravím,
používám PHP ve verzi PHP 5.3.13 a Nette v poslední verzi z https://github.com/…its/f-db-dev.
Problém je následujícím kódu:
<?php
foreach ($rows as $row) {
foreach ($row->related('row_related') as $row_related) {
print $row_related->related->id;
}
}
?>
Vše probíhá v pořádku, má-li první načteny záznam z
$rows
nějaké záznamy v tabulce row_related
–
tedy dojde k natažení záznamů z této tabulky a vše jede jak má,
ale – nemá-li první záznam žádné potomky v row_related
,
nedojde k zavolání dalšího obslužného SQL a při najetí na první
záznam z $rows
který potomky v row_related
má dojde
k chybě „Invalid argument supplied for foreach()“.
Chyba by se jistě vyřešila tím, pokud by po prvním zavolání
$rows
s potomky v row_related
se zavolal obslužný
SQL dotaz… – rád se případně ujmu i řešení (docela mi na tom hoří
projekt, a moc se mi teď nechce to přehazovat na něco jiného), pokud mě
někdo odkáže kde mám hledat (přeci jen, to co probíhá uvnitř
Nette\Database mi občas příjde jako docela black magic…).
Případně jsem si říkal, jestli se nedá donutit ten ActiveRow aby si to zavolal?
Předem díky za rady!
- tomas.lang
- Člen | 53
Jaký je vlastně rozdíl mezi větvemi f-db-dev a f-database-refactoring? (otázka asi hlavně na Honzu) Jinak díky za tip, vyzkouším…