3

我正在使用 Restler 2.0,我正在尝试添加基于 CRUD 示例的新路由

$o['GET']['author/:name/:email']=array (
  'class_name' => 'Author',
  'method_name' => 'getLogin',
  'arguments' => 
  array (
    'name'  => 0,
    'email' => 1,
  ),
  'defaults' => 
  array (
    0 => NULL,
    1 => NULL,
  ),
  'metadata' => 
  array (
  ),
  'method_flag' => 0,
);  

当我在浏览器中进行 url 调用时http://[host]/author/[name to pull]/[email to pull]

我收到以下错误:

{
  “错误”: {
    “代码”:404,
    “未找到信息”
  }
}

我的作者代码已使用以下方法更新

function getLogin($name=NULL,$email=NULL) {
    print "in author, getting login";
    return $this->dp->getLogin($name,$email);
}

我难住了。

4

1 回答 1

0

Luracast Restler 自动路由

首先,routes.php在生产模式下运行 Restler 时自动生成

$r = new Restler(TRUE);

当我们调用时将被覆盖

$r->refreshCache();

或在调试模式下运行它,因此不应手动编码。

Restler 2.0正在使用自动映射,更新后的CRUD 示例中对此进行了更好的解释。

您的方法的更正版本应该是

function get($name=NULL,$email=NULL) {
    print "in author, getting login";
    return $this->dp->getLogin($name,$email);
}

这将映射到

GET /author/:email/:password

您的方法当前映射到的位置

GET /author/login/:email/:password

Luracast Restler 自定义路由

另请注意,您可以使用 PHPDoc 注释来创建自定义映射,并且可以添加多个。例如

/*
* @url GET /custom/mapping/:name/:email
* @url GET /another/:name/:email
*/
function get($name=NULL,$email=NULL) {
    print "in author, getting login";
    return $this->dp->getLogin($name,$email);
}

这将创建以下路由,并禁用该方法的自动路由。

GET /author/custom/mapping/:email/:password
GET /author/another/:email/:password
于 2011-11-08T17:43:41.067 回答