Php 当返回超过2条记录时,为什么Laravel不再返回封装在数组中的响应?

Php 当返回超过2条记录时,为什么Laravel不再返回封装在数组中的响应?,php,laravel,laravel-5.6,Php,Laravel,Laravel 5.6,当从端点返回响应时,我对Laravel有一个奇怪的问题 当通过我的端点返回的记录少于两条时,我得到以下响应: 但是,当该端点检索到两个以上的记录时,我会得到以下响应: 正如您所看到的,json响应现在包装在一个对象中,而不是一个数组中。这是一个问题,因为我在客户端使用var.length来进行此响应。当我使用.length返回两条以上的记录时,它会失败,因为它是作为对象而不是数组返回的 知道为什么会这样吗?以下是返回数据的控制器函数: /** * Return active failure

当从端点返回响应时,我对Laravel有一个奇怪的问题

当通过我的端点返回的记录少于两条时,我得到以下响应:

但是,当该端点检索到两个以上的记录时,我会得到以下响应:

正如您所看到的,json响应现在包装在一个对象中,而不是一个数组中。这是一个问题,因为我在客户端使用
var.length
来进行此响应。当我使用
.length
返回两条以上的记录时,它会失败,因为它是作为对象而不是数组返回的

知道为什么会这样吗?以下是返回数据的控制器函数:

/**
 * Return active failures
 */
public function getActiveFailures()
{
  $test_failures_active = TestFailure::where('active', '=', true)
    ->with('type', 'scope', 'error_type')
    ->orderBy('created_at', 'DESC')
    ->get();
  $test_failures_unique = $test_failures_active->unique('error_message');
  return $test_failures_unique;
}

当您使用
unique
时,集合中的某些值将被删除,但键将保持不变。当0个索引键顺序被破坏时,<代码> JSONYNECODEN>代码> ING将您的集合视为<强>对象< /强>,而不是<强>数组< /强>。您需要做的是使用以下方法重新索引项:

return $test_failures_unique->values();