Odkazování v tabulkách pomocí cizích klíčů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stemba
Člen | 20
+
0
-

Mám takový problém, vytvořil jsem si podle Quickstartu první aplikaci, vše funguje perfektně, ale pak jsem si vytviřl vlastní aplikaci, ale nefunguje mi odkazování mezi tabulkami. Mám tabulku books s údaji o knize a také je v ní sloupec author_id, který odkazuje pomocí cizího klíče na tabulku authors na sloupec author_id (primární klíč), ve které jsou údaje o autorech knih.

Struktura tabulky books

Pole Typ Nulový Výchozí
book_id int(11) Ne  
title varchar(50) Ne  
author_id int(11) Ne  

Struktura tabulky authors

Pole Typ Nulový Výchozí
author_id int(11) Ne  
name varchar(50) Ne  

Jako model jsem použil Nette/…/Selection a vytvořil službu v config.neon jako v Quickstartu. Při výpisu jsem použil tento kód:

Presenter:

$this->template->books = $this->context->CreateBooks();

Šablona:

{foreach $books as $book}
    {$book->title} {$book->authors->name}<br>
{/foreach}

Laděnka ale stále hlásí chybu: „No reference found for $books->authors“
V databázi jsem použil tabulky InnoDB, nastavil indexy i cizí klíče, ale stále nic.
Snažil jsem se postupovat podle quickstartu, ve kterém to stejným způsobem funguje, ale zjevně dělám někde chybu.
Neměl bystě někdo nápad co s tím?
Díky

nanuqcz
Člen | 822
+
0
-

Ahoj,
zkus při návrhu DB používat NotORM konvence (tzn. názvy tabulek jednotným číslem, primární klíč má vždy název „id“) – tyto konvence používá i Nette\Database. Podle mě se tím problém vyřeší.

stemba
Člen | 20
+
0
-

Ahoj, skvělé… bylo to tím. Díky moc!!