Databáze záznamy na sobě závislé ze 2 tabulek
- Prokop
- Člen | 31
Zdravím,
jak mám udělat že místo „author_id“ záznamu v tabulce „forum“ se
vypíše záznam „name“ z tabulky „user2“?
ForumRepository.php
public function fetchForumAll($name)
{
return $this->getCustomTable($name)->order('posted DESC');
}
ForumPresenter.php
public function renderPublic() {
$name = 'forum_public';
$this->template->entries = $this->forumRepository->fetchForumAll($name);
}
Forum/default.latte
{foreach $entries as $entry}
<div class="entry">
<div class="author">{$entry->author_id}</div>
<div class="text">{!$entry->text|escape|nl2br}</div>
<div class="posted">{$entry->posted}</div>
</div>
{/foreach}
$entries jsou záznamy typu „date“, „text“ atd. a místo „author_id“ v tabulce „forum_public“ chci vypsat „name“ v tabulce „tabulka2“ dle toho „author_id“=„id“ ⇒ „name“ (ne z identity ani z defaultni tabulky „users“).
Co je nejlepší řešení v Nette?
Díky
Editoval Prokop (13. 11. 2012 22:17)
- Prokop
- Člen | 31
cujan napsal(a):
mas to na urovni db prepojene cudzim klucom?
??? Db spojeni mam v poradku, spojeni je ve stejne relaci, zadna nova databaze atp. Dokazu v presenteru (druhy zdrojak) nacist i jinou tabulku bez problemu, jen jak zobrazit misto ID ten zaznam z druhe nactene tabulky, to jmeno.
- Prokop
- Člen | 31
cujan napsal(a):
no ved sa ta pytam ze ci mas v databaze author_id prepojene s id tabulkou user
Ne to nemam, takze to jdu udelat…
A potom?
- Prokop
- Člen | 31
cujan napsal(a):
inac odporucam si si dokladne prejst uvodny projekt a plus vzorove priklady co su dostupne s nette v adresari example, sam som nedavno zacinal a vela veci som pochopil az ked som si nastudovat priklad CD-collection.
Ja jsem to prochazel, ale nekde je to vysvetlene na me nepochopitelne
debilne…
V tom cd-collection je muj pripad?
Jinak diky samozrejme ;)
- Prokop
- Člen | 31
cujan napsal(a):
a potom len v latte vypises
<?php {$zaznam->user2->name} ?>
tak jsem to udelal a nefunguje…
„forum_public.author_id“ jsem propojil s „user2.id“, v templatu vypsal
presne co jsi napsal a nejde, pak jsem si v presenteru vytvoril inject
„user2Repository“ a zkusil nastavit
{$entry->user2Repository->name}
a take neslo…
Kde dale mam hledat chybu?
Propojeni jsem zkousel jako:
- „forum_public.author_id“ VARCHAR(100) s „user2.name“ VARCHAR(100)
- „forum_public.author_id“ INT(11) s „user2.id“ INT(11)
U obou moznosti jsem zkousel vypsat:
- $entry->user2->id
- $entry->user2->name
- $entry->user2Repository->id
- $entry->user2Repository->name
Neslo nic, v cem ku*va delam porad chybu? :(
Hledal jsem to v CD-collection, jenze tam jsem reseni nenasel.
Jdu spat, treba budu mit Deja Vu v noci :D
- cujan
- Člen | 410
sory kus som ta zaviedol ,lebo som to pisal z hlavy, ale tvoj problem je rieseny napr. tu
- Prokop
- Člen | 31
cujan napsal(a):
sory kus som ta zaviedol ,lebo som to pisal z hlavy, ale tvoj problem je rieseny napr. tu
Tak konečně jsem to dal dohromady díky tomuto odkazu a samozřejmě tobě. ;) Díky