Grido – strasne vela query
- steelbull
- Člen | 241
Prosim o pomoc v bezradnej situacii. Pre kazdy riadok a pre kazdy stlpec, v ktorom odkazujem napr. $item->cat->title namiesto LEFT JOIN urobi novy select. Mam 50 zaznamov a 300 selectov :-(
Prosim pomozte… Ako to mam riesit? Dakujem za kazdu relevantnu pomoc.
$item->ref taktiez nefunguje.
Do pola hodnoty nemozem nacitat, lebo ich je vela, takze $grido->model(array(…)) sa neda pouzit. Ako mam grido pouzit s vlastnym query aby fungoval paginator, sorting, filtering?
$grid->addColumnText('article_cat', 'Article')
->setColumn(function($item){
if(!empty($item->cat_id)) {
return $item->cat->title;
}
})
->setFilterText()
->setColumn('cat.title');
Editoval steelbull (9. 4. 2015 20:18)
- Jiří Nápravník
- Člen | 710
Nevím, co pouzivas na pripojeni k databazi. Ale bude to jiste podobne. Ja mam doctrine a pouzivam:
$grid->setModel(new Doctrine($this->backlinkFacade->getBacklinkQueryBuilder()));
a ten querybuilde ma v sobe left, ci-li uz se nepoklada dalsi dotaz
- steelbull
- Člen | 241
Jiří Nápravník napsal(a):
Nevím, co pouzivas na pripojeni k databazi. Ale bude to jiste podobne. Ja mam doctrine a pouzivam:
$grid->setModel(new Doctrine($this->backlinkFacade->getBacklinkQueryBuilder()));
a ten querybuilde ma v sobe left, ci-li uz se nepoklada dalsi dotaz
Urobil som to nakoniec tak, ze som vytvoril view. Ale mam dalsi problem. View v MSSQL nemoze mat primary key a Nette niekedy vyhodi vynimku Logic Exception. Zalozil som v tejto suvislosti novu temu.
- steelbull
- Člen | 241
Mysteria napsal(a):
NDBT a view se nemají moc rádi no. Buď nepoužívat view nebo u sebe to řeším tak, že místo discovered reflexion používám conventional, pak se mi tahle chyba neobjevuje (ale to lze udělat samozřejmě pouze pokud tak máš navrženou databázi).
A aky je rozdiel medzi discovered a convention?
Keby som presiel na dibi tak by to nepomohlo?
- Mysteria
- Člen | 797
Hlavní rozdíl je v tom, že discovered si zjišťuje referenční integritu z cizích klíčů (na použití ref a related metod), kdežto conventional podle názvu sloupců, že třeba sloupec category_id v tabulce item odkazuje na sloupce id v tabulce category a podobně.
Případně máš ještě možnost na to view použít normálně NDB query a napsat si dotaz ručně, pokud nepracuješ s view tak často.
- steelbull
- Člen | 241
Mysteria napsal(a):
Hlavní rozdíl je v tom, že discovered si zjišťuje referenční integritu z cizích klíčů (na použití ref a related metod), kdežto conventional podle názvu sloupců, že třeba sloupec category_id v tabulce item odkazuje na sloupce id v tabulce category a podobně.
Případně máš ještě možnost na to view použít normálně NDB query a napsat si dotaz ručně, pokud nepracuješ s view tak často.
Ten view som ale robil prave preto, lebo sa jedna o zlozite query, ktore pouzivam v datagride grido a ked som to robil nie cez view ale cez netteDatabase tak pri $item->article->cat->title to geneovalo stale novy query pre kazdy riadok. Tak som urobil view, kde som si vytiahol vsetky data, ale opat je to problem. Keby som presiel na dibi fungovalo by to bez problemov?