我在我的控制器中有一个功能,它应该给我一个分页的东西,我的方式与所有其他控制器完全相同(它完美地工作)但是我回来了空对象。 这是功能代码:
public static function getQuotes(){
$quotes = Quote::orderBy('created_at','desc')->paginate(15);
$links = $quotes->links();
return json_encode(array( 'quotes' => $quotes, 'links' => $links ));
}
这是ajax请求:
$.ajax({
type: "POST",
url: url,
data: {datagram: datagram},
success: function(data){
console.log(data); //debug
catEditor.quoteStuff(data);
typeof data == 'string' ? tools.flash(data) : 0;
},
error: function(xhr, status, err) {
console.log(err.error+' '+xhr.responseText+' '+status);
}
});
答案 0 :(得分:1)
首先,您可以尝试使用此方法:
return Response::eloquent(Quote::orderBy('created_at','desc')->paginate(15));
再见
答案 1 :(得分:0)
首先,尝试在getQuotes()方法中返回一个这样的简单对象:
return Response::json(array('name' => 'Steve', 'state' => 'CA'));
如果您可以从ajax方法获取它,那么您的orm请求应该有问题。否则问题出在前面。
再见
答案 2 :(得分:0)
$quotes = Quote::orderBy('created_at','desc')->paginate(15);
$links = $quotes->links();
return json_encode(array( 'quotes' => $quotes->getCollection()->toArray(), 'links' =>$links ));
尝试此get集合是从对象推送实例,然后转换为数组
答案 3 :(得分:0)
Paginate返回一个Paginator对象,而不是一个集合
答案 4 :(得分:0)
在json编码之前将$ links对象转换为字符串manualy:
return json_encode(array( 'quotes' => $quotes, 'links' => (string)$links ));
祝你好运:)