Nedaří se vypsat obsah tabulky

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

Zdravím,
doposavad, jsem všechny projekty měl postavené na dibi, ale rád bych přešel na Nette\Database a abych se přiznal vůbec si nevím rady.

Koukám tu do toho přes hodinu, ale nedaří se mi přijít na to, co dělám blbě :(

Presenter:

public function renderDefaul()
{
	$this->template->tests = $this->context->createCircles(); // Potřebuji vypsat všechny znáznamy
	/** Nefunguje ani $this->template->tests = $this->context->createCircles()->where(array('id_circle'));
**/
}

V configu jsem upravil snad vše co jsem měl

common:
	parameters:
		database:
			driver: mysql
			host: localhost
			dbname: dbmytest
			user: root
			password:
...

factories:
		circles: Circles

A nakonec model Circles.php

<?php

use Nette\Database\Connection,
    Nette\Database\Table\Selection;


class Circles extends Selection
{
    public function __construct(\Nette\Database\Connection $connection)
    {
        parent::__construct('circles', $connection);
    }
}

Tabulka v db se jmenuje circles a data v ní jsou…
Chybu to žádnou nevyhazuje, jen když se pokusím vypsat v šabloně $tests tak není i přes to, že by snad měla být

$this->template->tests = $this->context->createCircles();

Undefined variable: tests

Mohl by někdo prosím poradit…
Předem dík

leninzprahy
Člen | 150
+
0
-

Ahoj,
neměla by se ta metoda jmenovat renderDefault(), tzn. nechybí tam t na konci?

Budry
Člen | 88
+
0
-

jžš… já sem fakt ****
Díky

Editoval Budry (25. 4. 2012 17:07)

hrach
Člen | 1838
+
0
-

okamžitě přestaň instancovat vlastni selection :) to určitě není správný přístup :D

Editoval hrach (25. 4. 2012 23:26)

Budry
Člen | 88
+
0
-

hrach:

A dá se někde zjistit co je dobrý přístup?
Mám s tím poslední dobou dost problémy, dokud se člověk učí základy tak ho to tak netíží, ale jak sem se seznámil s Nette už trochu víc rád bych se ho naučil používat „správně“. Tak nějak mám obavy, že ať píši co píši vyleze z toho ve výsledku nějaká prasárna (co se kódu týče).

Jinak Nette\Database jsem vzdal. Potřebuju pracovat a až bude víc volno tak na něj kouknu, zatím jsem se radši vrátil ke dibi…

hrach
Člen | 1838
+
0
-

Dojed na posledni sobotu, nebo shledni pak zaznam (snad bude). Neco o spravnem pristupu a pokrocilych dotazech zkusim odprezentovat.

Rychle: pouzivej conenction->table().

vvoody
Člen | 910
+
0
-

Snad nebudem trepat dve na tri…

Treba si len davat pozor aby sme jednu instanciu Nette\Database\Table\Selection nepouzili omylom dva krat, kedze je to taka jednorazova trieda v ktorej sa nabaluju informacie nazbierane metodami select,where,order,limit…

Totizto jednoducho by sa mohlo prihodit, ze po pouziti tejto instancie, dajme tomu ulozenej v prezenteri X, by si niekedy neskor zrazu potreboval pouzit Selection na tu istu tabulku na inom mieste toho prezentera, (napriklad tovarnicka komponenty) tam by uz nastal problem, kedze ta instanciu uz nemusi byt „cista“, preto je istejsie si drzat po ruke instanciu Nette\Database\Connection od ktorej dostanes vzdy novu „nezaprasenu“ Selection.

Mozno by si selectin zasluzil obalit (nie extend ale nieco ako tovarnicka) do dalsej triedy ktora by len uchovavala connection a nazov tabulky, co by viedlo podla mna k cistejsiemu kodu. Ak by takato trieda fajn v modeli reprezentujucom jednu tabulku, namiesto toho aby tento model mal pristup k celej databaze cez Nette\Database\Connection.

Na druhu stranu ak si svoju triedu Circles nikam neukladas pre buduce pouzitie tak problem nenastane, ale extendovat triedu ako Selection proste moc pekneni neni. Tiez ma to hned zarazilo ako @Hrach-a.

Budry
Člen | 88
+
0
-

hrach napsal(a):

Dojed na posledni sobotu

Tam už jsem celkem dlouho chystám, ale mám drobet obavy abych nebyl nejmladší účastník :D tak jsem se k tomu zatím nějak nedokopal

vvoody: aha díky

hrach
Člen | 1838
+
0
-

Tak z toho obavy fakt nemej :D

Budry
Člen | 88
+
0
-

Mno… :-) plnoletej už nějakej ten pátek jsem, ale vždycky mi to přišlo hrozně málo na to abych se tam mohl podívat :D

Jen co se vyhrabu ze zkoušek tak se stavim :D

Jinak díky, už jsem pochopil jak jste to mysleli. S Nette\Database to byl první kontakt a jel jsem podle toho jak sní pracovali v quickstartu… zdá se že jsem šlápnul vedle

Elijen: souhlas

Editoval Budry (26. 4. 2012 23:09)

Elijen
Člen | 171
+
0
-

hrach napsal(a):

okamžitě přestaň instancovat vlastni selection :) to určitě není správný přístup :D

Asi by to mělo zmizet z quickstartu :)
https://doc.nette.org/cs/quickstart#…

Editoval Elijen (26. 4. 2012 23:28)