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 Exampleでよりよく説明されている自動マッピングを使用しています。

メソッドの修正版は

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 に答える