Передача переменных из одного класса в другой в PhP

1

Привет, я пытаюсь создать свой первый успокаивающий веб-сервис и воспользоваться им с помощью lorna jane mitchell blog.

Если req приходит через этот URL: http://localhost: 8888/lorna/index.php/tree/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. Спасибо вам большое за ваше время :)

UPDATE Это код для создания вложенного объекта класса

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();
  }
}
Теги:
web-services
restful-architecture
restful-url

1 ответ

0
Лучший ответ

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

$api = new JsonView;
$api->render($path);
  • 0
    спасибо за быстрый ответ плохо попробую :)
  • 0
    @ akhilp255 Я попробовал это, и я получаю это сообщение об ошибке. Неопределенная переменная: путь в /Applications/MAMP/lorna/controllers/TreeController.php в строке 66
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню