Nette\database duplikace dotazu
- rv
- Člen | 6
Zjistil jsem, ze mi Nette\database provadi zbytecne dva dotazy na misto jednoho. Je to normalni chovani a pripadne, proc tomu tak je?
PHP kod s dotazem a jeho vyuzitim
$this->record = $this->repository->find($id);
$this["form"]->setDefaults($this->record)
Provedou se tyto dva dotazy
SELECT `id` FROM `table` WHERE (`id` = ?)
SELECT * FROM `table` WHERE (`id` = ?)
Proc se rovnou neprovedl dotaz s hvezdickou a vykona se az pozdeji? Pokud pouziji php kod pro dotaz takto
$this->repository->getTable()->select("*")->find($id);
tak je vse ok, ale je to zbytecne zdlouhave, kdyz uz tady existuje funkce find().
- Petr Hudík
- Člen | 49
Co přesně je $this->repository
resp.
$this->repository->find($id)
? můžeš sem prosím hodit co
tam máš?
- rv
- Člen | 6
Petr Hudík napsal(a):
Co přesně je
$this->repository
resp.$this->repository->find($id)
? můžeš sem prosím hodit co tam máš?
Omlouvam se, neuvedomil jsem si, ze ta moje trida neni nejaka trida z Nette,
ale napsal jsem si ji sam. Cili prikaz
$this->repository->find($id)
dela tohle:
$this->connection->table("table")->get($id)
kde connection
je objekt typu
\Nette\Database\Connection
hrach napsal(a):
Zrejme tam budes mit
->toArray()
; pak doporucuji pridat explicitni->select('*')
Tohle tam nikde explicitne nemam, nicmene metoda z formularove tridy
setDefaults
resp. setValues
to predeleva na pole, cili
tady bude asi zakopany pes, co?