Přidání dat do výsledků z databáze a PDOException

- matoni555
 - Člen | 40
 
Ahoj,
v modelu Products používám funkci pro vrácení produktů. K jednotlivým
řádkům ve funkci process pak přidávám další data. Problém je,
že někdy mi to hodí PDOException: No reference found for
$products->isInAction zejména pokud smažu cache. Při dalším
obnovení stránky už to funguje.
V příkladu níže přidávám ke každému výsledku data (např. isInAction viz níže, ale i další).
Co dělám špatně, že to někdy háže tu vyjímku? Používám Nette\Database
Díky
Vrácení produktů:
public function getByCategories(array $categories)
{
	$products = $this->connection->table($this->tableName)->where(...);
	return $products;
}
Přidání dat:
public function process($products)
{
	foreach ($products as $product) {
		$product->isInAction = ...;
	}
	return $products;
}
Nasypání do šablony v presenteru:
$products = $this->context->products->getByCategories($categories);
$this->template->products = $this->context->products->process($products);
				
- Ivorius
 - Nette Blogger | 119
 
Je to i v masteru, mám stejný problém – https://forum.nette.org/…odified-data

- Ivorius
 - Nette Blogger | 119
 
Při nastavení cache na DevNullStorage (které se mi ale nepodařilo přepnout v configu) se ten problém nevyskytuje.

- jansfabik
 - Člen | 193
 
Ten problém zřejmě souvisí s bugem #841.
@Ivorius: Pokud vím, tak ten kód, na který odkazuješ, vypíná cache u všech služeb (tedy i RobotLoader), což je fakt znát. Pokud chceš vypnout jenom cache u NDB, tak zkus přidat do config.neon toto:
services:
	nette.database.default:
		setup:
			- setCacheStorage(NULL)
Osobně jsem ten drobný rozdíl ve výkonu skoro ani nepoznal. Teď mi takhle bez problému funguje i jeden web.