Je možné vytvoriť metódu, ktorá bude „lazy“ spôsobom vraciať pole?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- dusan.ivanco
- Člen | 4
Dobrý deň vám prajem. S nette začínam a riešim problém ako vytvoriť lazy metódu na generovanie poľa. Môj problém je presne taký istý ako: https://forum.nette.org/…any-datagrid?p=9 pričom odpoveď bola nasledovná: https://forum.nette.org/…any-datagrid?p=9
V podstate potrebujem vytvoriť datagrid, ktorý bude pozostávať z dosť náročných výpočtov, ktoré by sa priamo v db urobiť nedali (preto potrebujem použiť ako datasource array a nie dibi).
Príklad kódu na ktorom to skúšam:
<?php
private function getDataSourceTest() {
$grid = [];
$query = $this->Test->select()->FetchAll();
foreach(Library::object2Array($query) as $result) {
.
.
.
array_push($grid, $result);
}
return $grid;
}
public function createComponentTest($name) {
$grid = new DataGrid($this, $name);
$grid->setDataSource($this->getDataSourceTest());
.
.
.
return $grid;
}
?>
A teraz vážne netuším či je tento problém nejako „jednoducho“ riešiteľný priamo v nette alebo to musí byť reálna vec v „vendor/ublaboo/datagrid/src/DataSource“
Za objasnenie a odpovede vám vopred veľmi pekne ďakujem.