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
+
0
-

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ě.

hrach
Člen | 1834
+
0
-

Chtelo by to dump stuktur a verzi nette.

patriksima
Člen | 58
+
0
-

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 | 1834
+
0
-

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
+
0
-

Zkusím to z toho projektu vyčlenit zvlášť, otestovat a pokud to bude zlobit, dám to sem.

patriksima
Člen | 58
+
0
-

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?

hrach
Člen | 1834
+
0
-

Ja s teobu uz fakt nevi, tvoje reporty stoji za … Ma to padat, ale nevis kdy. A padat znamena co? Jako ze spadne venku za oknem hruska, nebo co? Chyba? Ladenka? Sql dump tabulek, odkazovane, cilove. Komu neni rady, tomu neni pomoci.