0
rotting
06.10.16
✎
12:11
|
Вот рекурсивная функция:
public function build_tree($cats){
foreach ($cats as $cat)
{
$result = (new \yii\db\Query())
->select(['id', 'name', 'parent_id', 'guid'])
->from('category')
->where(['parent_id' => $cat['id']])
->all();
$i = 1;
$dats = array();
foreach ($result as $dat) {
$cat_detail['text'] = $dat['name'];
$cat_detail['href'] = \yii\helpers\Url::to(['', 'id' => trim($dat['id'])]);
$cat_detail['parent_id'] = $dat['parent_id'];
$cat_detail['guid'] = $dat['guid'];
$cat_detail['id'] = trim($dat['id']);
$dats[$i] = $cat_detail;
$i++;
}
$this->build_tree($dats);
$cat['nodes'] = $dats;
}
return $cats;
}
Вот так ее вызываю:
$result = (new \yii\db\Query())
->select(['id', 'name', 'parent_id', 'guid'])
->from('category')
->all();
$cats = array();
$i=1;
foreach ($result as $cat) {
if (empty($cat['parent_id'])) {
$cat_detail['text'] = $cat['name'];
$cat_detail['href'] = \yii\helpers\Url::to(['', 'id' => trim($cat['id'])]);
$cat_detail['parent_id'] = $cat['parent_id'];
$cat_detail['guid'] = $cat['guid'];
$cat_detail['id'] = trim($cat['id']);
$cats[$i] = $cat_detail;
$i++;
};
}
$tree = $this->build_tree($cats);
Но эта строчка $cat['nodes'] = $dats; как будто игнорируется, что я не так делаю?
|
|