LaravelルートからJSON出力を返そうとしています。これが私のルートです:
Route::get('main-contact-count', function() {
$mc = MainContact::where('flag', '=', '1')->count();
return Response::json(['count' => $mc]);
});
Firebugの応答タブを見ると、次のようになっています。
{"count":9}
JSONエンコーディングに角かっこがありません。このJSONは、リソースの豊富なコントローラーから返されるJSONLaravelとは異なります。角かっこが付いています。バックボーンはそれをうまく解析します。バックボーンは上記のJSONを正しく解析しません。コレクションの長さとモデルを見ると、console.log
どちらもゼロです。count
ただし、オブジェクトにドリルダウンすると、 9に設定されたプロパティを見つけることができます。
Laravelから正しいJSONを取得するにはどうすればよいですか?
キックと笑いのためだけに、バックボーンを投稿しています。
App.Collections.Count = Backbone.Collection.extend({
model: App.Models.Count,
initialize: function(models, options) {
this.fetch({
success: function(data, options) {
// console.log(data.models);
}
});
if (options) {
this.url = this.url || options.url;
}
}
});
App.Views.Count = Backbone.View.extend({
tagName: 'span',
className: 'leadCount',
template: _.template($('#contactCount').html()),
initialize: function() {
},
render: function() {
this.$el.html(this.template(this.collection.toJSON()));
return this;
}
});
そして私のルートでは:
var mc = new (App.Collections.Count.extend({ url: 'main-contact-count' }))();
var mcv = new (App.Views.Count.extend({ collection: mc }))();