1 回答

TA貢獻1824條經(jīng)驗 獲得超6個贊
這很難測試,但我認(rèn)為問題在于你一直在添加$str。所以每次循環(huán),你都會在上面添加下一個級別的字符串,最終你會重置它。
而不是那樣做,這需要$str并添加額外的部分,將它分配給一個新的字符串并使用這個值,包括將它傳遞到下一個級別......
private function _criteriaRec(&$result, $parentId, $str) {
$relations = parent::getAll('objects_relations', 'id, object_id_2', ['object_id', $parentId, 'attr', 'criteria']); // here I'm extracting the objects from DB
if(!empty($relations)){
foreach ($relations as $relation) {
$object = parent::get('objects', 'id, title', '', $relation['object_id_2']);
$newStr = "$str.$object[title]";
$result[] = array(
'parent' => $parentId,
'child' => $relation['object_id_2'],
'title' => $object['title'],
'str' => $newStr
);
$this->_criteriaRec($result, $relation['object_id_2'], $newStr);
}
}
return $result;
}
由于我無法對此進行測試,因此無法檢查。
- 1 回答
- 0 關(guān)注
- 112 瀏覽
添加回答
舉報