pathbuilder.php: Avoid extra sql requests

This commit is contained in:
Tom 2023-05-01 15:52:43 +02:00
parent a9572e6613
commit 9a9c4539a4

View file

@ -39,11 +39,21 @@ function entity_to_xml($pathbuilderEntity) {
// Get the paths. // Get the paths.
$paths = $pathbuilderEntity->getPbPaths(); $paths = $pathbuilderEntity->getPbPaths();
// find out all the WisskiPathEntitys to load
$pathEntityIDs = [];
foreach ($paths as $key => $path) {
$pathEntityIDs[] = $path['id'];
}
array_unique($pathEntityIDs);
// load the pathbuilder entities
$pathEntities = WisskiPathEntity::loadMultiple($pathEntityIDs);
// Iterate over every path. // Iterate over every path.
foreach ($paths as $key => $path) { foreach ($paths as $key => $path) {
$pathbuilder = $pathbuilderEntity->getPbPath($path['id']); $pathbuilder = $pathbuilderEntity->getPbPath($path['id']);
$pathChild = $xmlTree->addChild("path"); $pathChild = $xmlTree->addChild("path");
$pathObject = WisskiPathEntity::load($path['id']); $pathObject = $pathEntities[$path['id']];
foreach ($pathbuilder as $subkey => $value) { foreach ($pathbuilder as $subkey => $value) {
if (in_array($subkey, ['relativepath'])) { if (in_array($subkey, ['relativepath'])) {