Databáze záznamy na sobě závislé ze 2 tabulek

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

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)

cujan
Člen | 410
+
0
-

mas to na urovni db prepojene cudzim klucom?

Prokop
Člen | 31
+
0
-

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.

cujan
Člen | 410
+
0
-

no ved sa ta pytam ze ci mas v databaze author_id prepojene s id tabulkou user

http://www.kasman.sk/foreign-key

Prokop
Člen | 31
+
0
-

cujan napsal(a):

no ved sa ta pytam ze ci mas v databaze author_id prepojene s id tabulkou user

http://www.kasman.sk/foreign-key

Ne to nemam, takze to jdu udelat…
A potom?

cujan
Člen | 410
+
0
-

a potom len v latte vypises

<?php
{$zaznam->user2->name}
?>
cujan
Člen | 410
+
0
-

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.

Prokop
Člen | 31
+
0
-

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

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:

  1. „forum_public.author_id“ VARCHAR(100) s „user2.name“ VARCHAR(100)
  2. „forum_public.author_id“ INT(11) s „user2.id“ INT(11)

U obou moznosti jsem zkousel vypsat:

  1. $entry->user2->id
  2. $entry->user2->name
  3. $entry->user2Repository->id
  4. $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
+
0
-

sory kus som ta zaviedol ,lebo som to pisal z hlavy, ale tvoj problem je rieseny napr. tu

https://forum.nette.org/…ych-tabuliek

Prokop
Člen | 31
+
0
-

cujan napsal(a):

sory kus som ta zaviedol ,lebo som to pisal z hlavy, ale tvoj problem je rieseny napr. tu

https://forum.nette.org/…ych-tabuliek

Tak konečně jsem to dal dohromady díky tomuto odkazu a samozřejmě tobě. ;) Díky

cujan
Člen | 410
+
0
-

pohoda aj ja som zacinal…a nebolo to tak davno :-)

mozno casom dame nejaku spolupracu :-)