Vypsání řádky z více tabulek spojených cizími klíči
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- buffus
- Člen | 101
Nette Framework 2.0.8, Nette Database, PHP 5.3.18, MySQL InnoDB
Mám v aplikaci Repository.php jako v QuickStart.
V databázi spojené tabulky jako vzorový book.
V prezenteru
...
public function beforeRender()
{
$this->template->book = $this->bookRepository->findAll();
}
...
V šabloně
...
{foreach $book as $book}
<tr>
...
<td>{$book->autor_id->web}</td>
</tr>
{/foreach}
...
A mezi tabulkami book a autor
(FOREIGN KEY (
autor_id) REFERENCES `autor
(id
)`
Funguje. Tím myslím zejména, že se vypisuje autorův web z tabulky autor.
Nyní bych poprosil o radu:
V tabulce autor jsem změnil sloupec web na web_id.
Založil novou tabulku web se sloupci id a url.
Mezi tabulky autor a web vytvořil cizí klíč
(FOREIGN KEY (
web_id) REFERENCES `autor
(id
)`.
Je možné po této úpravě databáze vypisovat url autora knihy v šabloně, při procházení $book? Něco jako:
{foreach $book as $book}
<tr>
...
<td>{$book->autor_id->name}</td>
<td>{$book->...nevím jak ...->url}</td>
</tr>
{/foreach}
Díky.