一个非常奇怪的拉拉维尔问题


A very weird Laravel issue

我在拉拉维尔遇到了这个非常奇怪的问题。

return $this->pending($input);

此方法返回在其中执行的查询结果。当我这样做时,我会得到我需要的数据。

{
  "total": 51,
  "per_page": 5,
  "current_page": 1,
  "last_page": 11,
  "next_page_url": "link/to/api?page=2",
  "prev_page_url": null,
  "from": 1,
  "to": 5,
  "data": [
     //some data
   ]
}

但是,当我尝试这样做时:

$response = array();
$response['pending'] = $this->pending($input);

我得到一个空白数组。

{
  "pending": {}
}

知道为什么会这样吗?我确定查询是正确的,因为我从查询中获得了预期的结果。

另外,我尝试这样做。我在函数pending中做同样的事情:

$data = User::paginate(5);
return $data;

这行得通。

但是,这并没有

$response = array();
$response['pending'] = User::paginate(5);
return $response;

这可能会解决您的问题

$response = array();
$response['pending'] = $this->pending($input);

你得到的是空的,因为它是一个集合,如果你真的想使用它

$data = Users::paginate(5);
return (array) $data;