0

我似乎无法弄清楚这一点。

班上:

class Assets {
 function getOne($id) {
    $asset = DBO_Asset::getOneByPublicId($id);

    return $asset->id;
 }
}

index.php:

require_once 'restler/restler.php';
require_once 'API/Assets.php';

$rest = new Restler();
$rest->addAPIClass("Assets");
$rest->handle();

网址:

http://localhost/api/index.php/assets/getOne/8TWVTZAU

结果:

{
  "error": {
  "code": 404,
  "message": "Not Found"
  }
}

我不知道为什么会创建 404,但我按照说明进行操作,但我仍然没有得到任何结果。有人可以帮我解决这个问题吗?

4

1 回答 1

1

Restler 使用get, post, put,delete作为方法前缀来自动将它们映射到相应的 HTTP 方法/动词

GET 是默认的 HTTP 方法,因此如果您不使用上述任何方法作为前缀,它将被映射到 GET 方法

您的 api 当前正在映射到以下 url

http://localhost/api/index.php/assets/one/8TWVTZAU

如果getOne网址中的内容对您很重要,请使用@url如下所示的注释手动路由该方式

class Assets
{
    /**
     * @url GET getOne/:id
     * @url GET getOne
     */
    function getOne($id)
    {
        $asset = DBO_Asset::getOneByPublicId($id);
        return $asset->id;
    }
}
于 2012-08-21T00:50:06.953 回答