我有这个查询
$orderStates = OrderState::listsTranslations( 'states' )->pluck( 'states', 'id' )->toArray();
将输出类似
的内容array:3 [▼
1 => "waiting"
2 => "agreed"
3 => "canceled"
]
我需要跳过第一个类似
的东西array:3 [▼
2 => "agreed"
3 => "canceled"
]
请问如何做到这一点?
答案 0 :(得分:1)
首先感谢Namoshek指南,但skip(1)
无效,但slice(1)
做了
这是最后一个查询
$orderStates = OrderState::listsTranslations( 'states' )
->pluck( 'states', 'id' )
->slice( 1 )
->toArray();
工作得很好。
答案 1 :(得分:0)
有多种方法可以实现这一目标。对我来说似乎不太一致的一种方法是使用skip(1)
(这要求查询按id
排序,并且始终需要跳过id = 1
的条目:< / p>
$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
为将来提供了最大的可扩展性。