ActiveRow::ref dvojí volání nefunguje
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- patriksima
- Člen | 58
Mám v modelu (Table\Selection) funkci
public function xyz($id)
{
$row = $this->get($id);
$order = $row->ref('order_id'); // zkoušel jsem i ref('tabulka','order_id')
$order->toArray(); // kdyz to tady nedam, tak prikaz nize vrati FALSE
$user = $order->ref('user_id'); // zkoušel jsem i ref('tabulka','user_id')
}
Podle me je chybka v ActiveRow::access, ale třeba to volám blbě.
- patriksima
- Člen | 58
hrach napsal(a):
Chtelo by to dump stuktur a verzi nette.
staci takhle?
tabulky (innodb)
user – id, email, …
order – id, user_id, … user_id je cizi klic
order_invoice – id, order_id, … order_id je cizi klic
nette 2.0.5
- hrach
- Člen | 1838
Neco takoveho jsem si ted samozrejme zkusil a funguje to v poradku. Chyba bude nejspise na tve strasne. Je treba cely dump, nebo kod do testovaci db.
Kod do testovaci db:
$book_tag = $connection->table('book_tag')->where('book_id', 3)->where('tag_id', 21)->fetch();
Assert::same('David Grudl', $book_tag->book->translator->name);
- patriksima
- Člen | 58
Zkusím to z toho projektu vyčlenit zvlášť, otestovat a pokud to bude zlobit, dám to sem.
- patriksima
- Člen | 58
Takže je to ještě horší. Ono totiž občas padá i obyčejná posloupnost:
$row = $this->get($id);
$order = $row->ref('order_id');
A vůbec nevím, kdy to spadne. Nějaký nápad jak to nasimulovat? Nemůže to mít něco s cache?