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();
工作正常。
我有这个问题
$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();
工作正常。