繁体   English   中英

如何使用angular.js $ http服务在PHP后端API中“命中”特定功能?

[英]How to 'hit' specific function in PHP backend API with angular.js $http service?

我想知道是否可以使用$ http服务打特定功能(只是功能,而不是孔文件)?我的$ http服务看起来像这样:

$http.get('../classes/githubusers.php').then(function(response){

 $scope.gitUsers = response.data;
 console.log($scope.gitUsers);

 });

后端API如下所示:

 //function to show users on Admin
 public function showGithubUsers(){

  $sql = "SELECT * FROM githubusers ORDER BY id DESC";
  $connect = new Database($username="",$password="");
  $connect->connect();
  $result = $connect->db->query($sql);
  while($row = $result -> fetch(PDO::FETCH_ASSOC)){
        $jsonVar[] = $row;
  }

  echo json_encode($jsonVar);
  //var_dump($jsonVar);
  }

  //function to show unique users from dB
  public function showUniqueUsers(){

  $sql = "SELECT * FROM githubusers";
  $connect = new Database($username="",$password="");
  $connect->connect();
  $result = $connect->db->query($sql);
  $nameArray = [];
  while($row = $result -> fetch(PDO::FETCH_ASSOC)){
      $this -> name = $row['name'];
      array_push($nameArray,  $this -> name);
  }

  $uniqueNameArray = [];
  $uniqueNameArray = array_unique($nameArray);
  echo json_encode($uniqueNameArray);
  }
  }

我想做的是从这两个PHP函数中分别获取数据,但是$ http服务从漏洞githubusers.php文件中获取数据并在UI上应用错误。我试图在URL $ http.get('中添加函数名。 /classes/githubusers.php/showUniqueUsers'),但没有用。

Angular http服务指向一个可访问的URL,这通常意味着在后端,您必须使用基于控制器的机制,在该机制中,您可以整理出访问URL时想要发生的各种操作。 每个现有的php框架都可以做到这一点。

如果要创建自定义的php文件,则需要使用具有基本__construct()函数的php类,该函数将自动被调用,或者如果您不想使用类,则需要将这些函数放入单独的php中文件,并分别调用它们。

不能调用函数。 但是PHP足够聪明。 您可以创建一个新文件或将代码添加到现有的php文件中,这将根据您作为POST或GET参数传递的内容为您调用该函数。

例如,您可以将js代码更改为:

$http.get('../classes/githubusers.php?show=unique').then(function(response){

 $scope.gitUsers = response.data;
 console.log($scope.gitUsers);

 });

然后您的PHP代码变为

//Can use a switch case here
if($_GET['show'] == 'unique')
  showUniqueUsers();
else if ($_GET['show'] == 'github')
  showGithubUsers();


//function to show users on Admin
 public function showGithubUsers(){

  $sql = "SELECT * FROM githubusers ORDER BY id DESC";
  $connect = new Database($username="",$password="");
  $connect->connect();
  $result = $connect->db->query($sql);
  while($row = $result -> fetch(PDO::FETCH_ASSOC)){
        $jsonVar[] = $row;
  }

  echo json_encode($jsonVar);
  //var_dump($jsonVar);
  }

  //function to show unique users from dB
  public function showUniqueUsers(){

  $sql = "SELECT * FROM githubusers";
  $connect = new Database($username="",$password="");
  $connect->connect();
  $result = $connect->db->query($sql);
  $nameArray = [];
  while($row = $result -> fetch(PDO::FETCH_ASSOC)){
      $this -> name = $row['name'];
      array_push($nameArray,  $this -> name);
  }

  $uniqueNameArray = [];
  $uniqueNameArray = array_unique($nameArray);
  echo json_encode($uniqueNameArray);
  }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM