Php 传递多个参数Angularjs资源

Php 传递多个参数Angularjs资源,php,angularjs,slim,angularjs-resource,Php,Angularjs,Slim,Angularjs Resource,我有UsersService.js app.factory('UsersService', function($resource) { return $resource('api/users/:id', {}, { update: {method:'PUT'}, }); 以及Index.php(带有php Slim框架的API) 现在,当我试图调用某处UsersService.get({id:15})时它可以工作,但是当我尝试调用UsersService.get({username:'

我有UsersService.js

app.factory('UsersService', function($resource) {
return $resource('api/users/:id', {}, {
    update: {method:'PUT'},
});
以及Index.php(带有php Slim框架的API)

现在,当我试图调用某处
UsersService.get({id:15})时它可以工作,但是当我尝试调用
UsersService.get({username:'test})时它不工作

我尝试了在谷歌上找到的所有可能的方法,但都没能成功。我可以通过用户名创建一个单独的服务来获取用户,但如果可能的话,我希望将所有这些都保存在一个服务中


请帮忙,谢谢

您必须告诉angular$resource从何处获取:username的值

有关更多详细信息,请参阅

更改youtUserService.js

app.factory('UsersService', function($resource) {
  return $resource('api/users/:id/:username', {id:'@id',username:'@username'}, {
    update: {method:'PUT'}
});
编辑:


您的php脚本如何知道当它得到
/users/123
时应该运行第一个路由,而当它得到
/users/123joe
时应该运行下一个路由?你是否以某种方式验证了它?如果没有,您应该在php脚本中更改路由,以便更清楚。

谢谢您的回复。我发现不可能有两个相同的路由(即使它们添加了不同的参数:id/:username,因为这显然无关紧要),所以我添加了
“getUserByUsername”:{method:'GET',url:'api/userByUsername/:username'},
在UsersService.js和php中我添加了
$app->GET('/userByUsername/:username','getUserByUsername');
现在它按照我想要的方式工作。
app.factory('UsersService', function($resource) {
  return $resource('api/users/:id/:username', {id:'@id',username:'@username'}, {
    update: {method:'PUT'}
});