веб-сервисы — передача переменных из одного класса в другой в Stack Overflow

Здравствуйте, я пытаюсь создать свой первый полноценный веб-сервис, и я использую инструкцию из блога Лорны Джейн Митчелл.

Если запрос приходит через этот URL: HTTP: // локальный: 8888 / Лорна / index.php / дерево / GetPath node_id = 75?
я вызываю функцию getpath, передавая node_id
Функция get path выглядит так:

  class NestedSet
{
public function getPath($id) {

$sql = "SELECT p." . $this->pk . ", p." . $this->name . " FROM ". $this->table . " n, " . $this->table . " p WHERE n.lft BETWEEN p.lft AND p.rgt AND n." . $this->pk ." = " . $id . " ORDER BY p.lft;";
$result = $this->db->query($sql);
if ($result->num_rows == 0) {
return $this->error(1, true);
}
$path = array();
$i = 0;
while ($row = $result->fetch_assoc()) {
$path[$i] = $row;
$i++;
}
return $path;
}

}

Теперь я хочу передать эту переменную $ path классу JsonView, который выглядит следующим образом:

    class JsonView extends ApiView {
public function render($path) {
header('Content-Type: application/json; charset=utf8');
echo json_encode($path);
return true;
}
}





class ApiView {
protected function addCount($data) {
if(!empty($data)) {
// do nothing, this is added earlier
} else {
$data['meta']['count'] = 0;
}
return $data;

}
}

Любая идея о том, как я могу передать переменную $ path или любую другую переменную через этот класс JsonView.
Большое спасибо за уделенное время 🙂

ОБНОВЛЕНИЕ Это код для создания вложенного объекта класса

public function getAction($request) {
$data = $request->parameters;

if(isset($request->url_elements[2])) {

switch ($request->url_elements[2]) {
case 'getpath':

$id = $data['node_id'];

$nested = new NestedSet();
$nested->getPath($id);

$api = new JsonView();
$api->render($path);

break;

default:
# code...
break;
}
} else {
$nested = new NestedSet();
echo $nested->treeAsHtml();
}
}

1

Решение

Просто создайте объект JsonView и затем вызовите функцию render, используя этот объект.

$api = new JsonView;
$api->render($path);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]