Есть дерево категорий и нужно дойти до главной и получить ее название. Для этого написал небольшую функцию, которая вызывает рекурсивно себя пока не доходит до корня. Однако проблема в том, что return у нее теряется и она не возвращает в исходную функцию вывод данных. Срабатывает по echo (показывает, что правильно функция работает), но теперь не сохраняется это в исходной функции. Просто пустое поле. Как правильно вернуть данные в исходную функцию?
public function getRootCategory($id) {
     $query = Category::find()
                ->select(['id',
            'name',
            'parent_id'])
                ->andWhere(['in', 'id', $id]);
            $data = $query->asArray()->all();  
            if ($data[0]['parent_id'] > 0) {
             $this->getRootCategory($data[0]['parent_id']);
            }
            else {
             return (?)  $data[0]['name'];
            }
    }