Php 当使用Laravel的Elount获得结果时,有没有一种方法可以使用主键作为索引?

Php 当使用Laravel的Elount获得结果时,有没有一种方法可以使用主键作为索引?,php,laravel,Php,Laravel,假设我在MySQL数据库中得到了这样一个表,id是主键 -------------------- |id | name | score | -------------------- 1 Alice 77 -------------------- 2 Bob 89 -------------------- 3 Charlie 95 使用laravel Elount从表中获取数据时 $result = TestingTable::get()->toArra

假设我在MySQL数据库中得到了这样一个表,id是主键

--------------------
|id | name | score |
--------------------
 1    Alice   77
--------------------
 2    Bob     89
--------------------
 3    Charlie 95
使用laravel Elount从表中获取数据时

$result = TestingTable::get()->toArray();
return $result;
返回结果如下所示:

{
   0: {
      id: 1,
      name: Alice,
      score: 77,
   },
   1: {
      id: 2,
      name: Bob,
      score: 89,
   },
   2: {
      id: 3,
      name: Charlie,
      score: 95,
   }
}
是否有函数使返回数组类似于:

{
   1: {
      name: Alice,
      score: 77,
   },
   2: {
      name: Bob,
      score: 89,
   },
   3: {
      name: Charlie,
      score: 95,
   }
}
换句话说,我是否有办法将主键作为返回数组的索引

我知道我可以通过循环数据并构建自己的数组来获得我想要的。我知道我可以编写自己的函数,并在需要时调用它。在编写函数之前,我只想知道Laravel或PHP中是否有预构建函数。

您可以使用
keyBy()
来实现:

$result = TestingTable::get()->keyBy('id')->toArray();

只是补充一点,返回结果与我在问题中所说的不完全一样。id用作索引,但也保留在数组中。然而,这对我来说已经足够好了,因此我接受这是一个正确的答案。如果你想隐藏它,你可以在你的模型中使用
$hidden
属性,如果列是隐藏的,你仍然可以通过键盘输入?是的,我想是的。。。隐藏仅在转换为数组时起作用,在您的情况下,这发生在keyBy之后