Laravel 5.4 跳过 Pluck 数组中的第一个值

Laravel 5.4 skip first value in Pluck array

我有这个问题

$orderStates = OrderState::listsTranslations( 'states' )->pluck( 'states', 'id' )->toArray();

这将输出类似

的内容
array:3 [▼
  1 => "waiting"
  2 => "agreed"
  3 => "canceled"
]

我需要跳过第一个像

array:3 [▼
      2 => "agreed"
      3 => "canceled"
    ]

请问如何实现?

您可以通过多种方式实现这一目标。对我来说似乎不太一致的一个是使用 skip(1) (这期望查询按 id 排序并且总是需要跳过 id = 1 的条目):

$orderStates = OrderState::listsTranslations( 'states' )
    ->skip(1)
    ->pluck( 'states', 'id' )
    ->toArray();

另一种方法可能是使用 whereNotIn() 来排除特定的 ids:

$orderStates = OrderState::listsTranslations( 'states' )
    ->whereNotIn('id', [1])
    ->pluck( 'states', 'id' )
    ->toArray();

您也可以使用 where('id', '!=', 1) 代替 whereNotIn('id', [1])skip(1),但我个人认为 whereNotIn 为未来提供了最大的可扩展性。

首先感谢 Namoshek 指南,但是 skip(1) 没有用这个但是 slice(1) 做了

这是最后一个查询

$orderStates = OrderState::listsTranslations( 'states' )
                                 ->pluck( 'states', 'id' )
                                 ->slice( 1 )
                                 ->toArray();

工作正常。