FindMany() - ProcessWire API: Unterschied zwischen den Versionen
Aus Wikizone
Steff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Die findMany Funktion ist speziell für Zugriffe auf große Datenbestände ausgelegt. Es ist im Prinzip ein lazyLoad find. So können selbst bei 10.000den Date…“) |
|||
| Zeile 1: | Zeile 1: | ||
| + | == API Zugriff == | ||
| + | https://processwire.com/docs/start/api-access/ | ||
| + | == Diverse nützliche Funktionen == | ||
| + | === findMany() === | ||
Die findMany Funktion ist speziell für Zugriffe auf große Datenbestände ausgelegt. Es ist im Prinzip ein lazyLoad find. So können selbst bei 10.000den Datensätzen Memory Overflows verhindert werden, ohne dass man mit Seiten arbeiten muss. | Die findMany Funktion ist speziell für Zugriffe auf große Datenbestände ausgelegt. Es ist im Prinzip ein lazyLoad find. So können selbst bei 10.000den Datensätzen Memory Overflows verhindert werden, ohne dass man mit Seiten arbeiten muss. | ||
https://processwire.com/api/ref/pages/find-many/ | https://processwire.com/api/ref/pages/find-many/ | ||
Aktuelle Version vom 19. Februar 2020, 14:04 Uhr
API Zugriff[Bearbeiten]
https://processwire.com/docs/start/api-access/
Diverse nützliche Funktionen[Bearbeiten]
findMany()[Bearbeiten]
Die findMany Funktion ist speziell für Zugriffe auf große Datenbestände ausgelegt. Es ist im Prinzip ein lazyLoad find. So können selbst bei 10.000den Datensätzen Memory Overflows verhindert werden, ohne dass man mit Seiten arbeiten muss.
https://processwire.com/api/ref/pages/find-many/
Usage
// basic usage $items = $pages->findMany($selector); // usage with all arguments $items = $pages->findMany($selector, array $options = []);
// Calculating a total from 20000 pages $totalCost = 0; $items = $pages->findMany("template=foo"); // 20000 pages foreach($items as $item) {
$totalCost += $item->cost;
} echo "Total cost is: $totalCost";
Arguments[Bearbeiten]
Name Type(s) Description selector string, array, Selectors
Selector to find pages options (optional) array Options to modify behavior. See Pages::find() $options argument for details.
Return value
PageArray
findMany() mit User Objekten[Bearbeiten]
That's correct. A solution is to use $pages->findMany() with the user template.
$members = $cache->get('members', '+10 minutes', function($pages) {
$member_pages = $pages->findMany('template=user, roles=member, sort=lastname, limit=3000, check_access=0');
return json_encode($member_pages->explode(['name', 'email'])); // Whatever fields/properties you need from the member pages
});