我想知道是否有可能击中特定的功能(只是功能,而不是孔文件)与$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文件,要么你需要使用php类和基本的__construct()
函数,它将被自动调用,或者如果你不想使用类,那么你需要把函数放在单独的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);
}
}