FindMany() - ProcessWire API: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(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
});