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