0

我有这个查询

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

这将输出类似

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

我需要跳过第一个像

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

请问如何做到这一点?

4

2 回答 2

0

有多种方法可以实现这一目标。一个对我来说似乎不太一致的方法是使用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();

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

于 2018-04-22T14:20:17.763 回答
0

首先感谢 Namoshek 指南,但skip(1)没有使用此指南,但slice(1)确实做到了

这是最后一个查询

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

工作得很好。

于 2018-04-22T14:38:32.650 回答