1

我的控制器中有一个函数应该返回一组分页的东西,我这样做的方式与所有其他控制器完全相同(它工作得很好),但我得到一个空对象。这是功能代码:

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);
     }
});
4

5 回答 5

1

第一步,您可以尝试使用此方法吗:

return Response::eloquent(Quote::orderBy('created_at','desc')->paginate(15));

再见

于 2013-07-17T19:46:53.653 回答
0

首先,尝试在 getQuotes() 方法中返回一个像这样的简单对象:

return Response::json(array('name' => 'Steve', 'state' => 'CA'));

如果您可以从您的 ajax 方法中获取它,那么您的 orm 请求应该有问题。否则问题就在前面。

再见

于 2013-07-18T07:31:02.743 回答
0

Paginate 返回一个 Paginator 对象,而不是一个集合

于 2013-12-17T19:36:05.093 回答
0
$quotes = Quote::orderBy('created_at','desc')->paginate(15);
$links = $quotes->links();
return json_encode(array( 'quotes' => $quotes->getCollection()->toArray(), 'links' =>$links )); 

试试这个获取集合是从对象推送实例然后转换为数组

于 2013-09-01T08:44:09.547 回答
0

只需在 json 编码之前手动将 $links 对象转换为字符串:

return json_encode(array( 'quotes' => $quotes, 'links' => (string)$links )); 

祝你好运 :)

于 2014-06-12T22:14:50.857 回答