我试图做我的第一个REST风格的应用程序具有骨干和Yii框架。 我曾与GET方法没有问题,但我用POST方法现在卡住了,创建一个新的元素。
我在骨干评论模型:
var commentModel = Backbone.Model.extend({
urlRoot: "index.php/api/comments",
idAttribute: 'id',
defaults: {
content: "Empty comment",
status: 1
}
});
在我看来,我添加了一个函数来创建一个新的评论从相对的形式传递值:
on_submit: function(e) {
var new_comment = new Comment({author_id: this.$('#author_text').val(), content: this.$('#content_text').val(), post_id: this.$("#post_text").val(), status: this.$("#status_text").val()});
new_comment.save();
},
展望与萤火虫似乎没事的要求,在POST选项卡中,我可以看到所有的值:
JSON
author_id "7"
content "Epic fail"
post_id "7"
status "2"
Source
{"content":"Epic fail","status":"2","author_id":"7","post_id":"7"}
但在我的PHP API的$ _POST变种是空的!
foreach($_POST as $var=>$value) {
if($model->hasAttribute($var))
$model->$var = $value;
else
$this->_sendResponse(500);
}
任何人有一些想法? 阅读Backbone.Sync的据我所知,它应该使用POST用于创建请求的文档。
我发现了一个解决方法从得到的值:
file_get_contents('php://input')
但id不觉得我的权利......
谢谢。