/** * create tree with custom threads * @param $data * @return string */ public function buildMultiTree($data) { $tree_data = Tree::find()->where(['in', '_id', $data])->andWhere(['level' => 0])->all(); $result = []; foreach ($tree_data as $item) { $tree = Tree::find()->where(['left_key' => ['$gte' => $item->left_key]])->andWhere(['right_key' => ['$lte' => $item->right_key]])->all(); $result = array_merge($result, $tree); } usort($result, [$this, 'leftSort']); return $this->generateJsonStr($result); }
public function actionFactory() { $request = Yii::$app->request; $post = $request->post(); $count = Tree::find()->where(['parent' => 1])->count() + 1; $range = $this->setFactoryRange(); $name = "Factory {$count}: ({$range[0]}-{$range[1]})"; $new = new Tree(); $new->text = $name; $new->parent = 1; if ($new->save()) { $ret = ["name" => $new->text, "id" => $new->id]; } else { $ret = ["error" => " something went wrong"]; } return json_encode($ret); }