1

*修正済み*** ブラウザがキャッシュされていたことが判明しました! それはずっと働いていました。私が自分のコードに行った唯一の更新は、コメントが投稿されたときに結果を更新することでした。これにより、json 応答で情報を取得できます。

return $result->comment = array('video_id'=>"$video_id",'fb_id'=>"$fb_id",'comment'=>"$comment");

フォームからレストラーに値を投稿するのに問題があります。何が間違っているのかわかりません。

フォームを投稿しようとすると、次のように返されます。

    {
      "エラー": {
        「コード」:404、
        "メッセージが見つかりません"
      }
    }

これが私のフォーム(comment.html)のコードです:

<form action="http://mysite.com/api/index.php/comment" method="post">
    <label>fb_id</label>
    <input type="text" name="fb_id">

    <label>video_id</label>
    <input type="text" name="video_id">

    <label>comment</label>
    <input type="text" name="comment">

    <input type="submit" value="Post" name="submit">
</form>

これが私のクラス(comment.php)のコードです:

    クラスコメント{
        static $FIELDS = array('video_id', 'fb_id','comment');
        パブリック $restler;

        public function insert($rec){
            $video_id = mysql_escape_string($rec['video_id']);
            $fb_id= mysql_escape_string($rec['fb_id']);
            $comment = mysql_escape_string($rec['comment']);
            $sql = "INSERT INTO コメント(video_id,fb_id,comment) VALUES('$video_id','$fb_id','$comment')";
            mysql_query($sql);
            '挿入されたレコード' を返します。
        }

        public function post($request_data=NULL){
            return $this->insert($this->_validate($request_data));
        }

        プライベート関数 _validate($data){
              $コメント=配列();
              foreach (Comment::$FIELDS as $field) {
                  if(!isset($data[$field]))throw new RestException(417,"$field field missing");
                  $comment[$field]=$data[$field];
              }
              $コメントを返します。
          }

    }

誰かが助けてくれれば、私の他のすべての API 呼び出しは GET でうまく機能しています。それは私が問題を抱えている POST です。

4

0 に答える 0