otazka z komponenty – dynamicka cast tabulek

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

Ahoj mám dotaz…

public function __construct(Selection $editlesson, Lessons $table) {
        parent::__construct(); // vždy je potřeba volat rodičovský konstruktor
        $this->editlesson = $editlesson;
        $this->table = $table;
    }

Tohle je základní tvar komponenty, chci se zeptat dá se nějak obejít to bez parametru Lesson (název modelu)? jde mi o to že mám skript kde se dynamicky tvoří tabulka, a pro to abych se připojil potřebuji mít i fyzicky vytvořený model…

šlo by to nějak?

ViPEr*CZ*
Člen | 813
+
0
-

Tohle je tak maximálně nějaký konstruktor nějaké třídy :-D
A toto: „dá se nějak obejít to bez parametru“ je vyjádření se úplně na lejno… z toho teda já absolutně nechápu co je cílem.
O co se vlastně snažíte?

sppilka
Člen | 37
+
0
-

No :D ty příspěvky mi moc nikdy nešli… :)

Cílem je vytvořit docházku… Implementoval jsem část kdy se po vyplnění formuláře vytvoří nová tabulka do databáze se se jménem předmětu… Automaticky i s tím se importují data konání jednotlivých hodin (řádky)… Když přidám žáka do předmětu tak se vytvoří nový sloupec v té vygenerované tabulce…

takže tabulka napr FCE vypada

sloupce DATUM | PETR | PAVEL | …
řádky 1.1.2012 | 1 | 0 | ..

Cíl, je udělat jednoduchou komponentu, která pod sebe vypíše data a vedle checkbox(nejaky handle) který mi mění 1/0 v byl nebyl…
U toho konstruktoru je Lesson $lesson – 1 argument je tuším instance modelu který se spojí s databází…

Otázka je zda existuje způsob to připojit manuálně bez nutnosti mít vytvořen model…
třeba nějaký new database connection atd..

Je to lépe srozumitelné?

Editoval sppilka (26. 8. 2012 20:23)

ViPEr*CZ*
Člen | 813
+
0
-

Vůbec to nějak není srozumitelné. Proč se vůbec tvoří tabulky a v nich dokonce nové sloupce podle reálného jména osoby? Asi bude už chyba v celém návrhu.
A proč se chcete vůbec obtěžovat s voláním manuálního připojení databáze někde uvnitř komponenty? To je tfuj. O připojení k DB se Vám postará právě framework, aby to bylo co nejmíň pracné. Do komponenty injektujete právě instanci na model (obslužnou instanci třídy co se stará o práci s daty) správně. Maximálně pokud jde o komponentu, která jen něco vypisuje, pak stačí předat namísto instance již pole s vybranými daty.

David Matějka
Moderator | 6445
+
0
-

nejlepsi by bylo zopakovat si zaklady databazi.

bude jedna tabulka predmet se sloupecky id, nazev
potom tabulka osoba s id a jmenem
a potom tabulka, ktera propoji tyhle dve podle toho, kdo se ucasni jakych predmetu.
dynamicke generovani schematu databaze je jen tezko obhajitelne :)

sppilka
Člen | 37
+
0
-

Hmmm zajímavé, děkuji za nápady, to první byla asi fakt totální blbost, prostě stačí dvě tabulky jak říka matej… Do té druhé se dají data konání, kdo, kde a stav…

Super díky za nakopnutí