【问题标题】:Laravel 5.4 skip first value in Pluck arrayLaravel 5.4 跳过 Pluck 数组中的第一个值
【发布时间】:2018-04-22 14:13:58
【问题描述】:

我有这个问题

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

会输出类似的东西

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

我需要跳过第一个类似的东西

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

请问这是怎么做到的?

【问题讨论】:

    标签: arrays laravel laravel-5.4 pluck


    【解决方案1】:

    有多种方法可以实现这一目标。一个对我来说似乎不太一致的方法是使用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 为未来提供了最大的可扩展性。

    【讨论】:

    • 感谢您的回复,但没有与我合作尝试 skip(1) 从order_states 得到SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'offset 1' at line 1 (SQL: select order_states.id, order_state_translations.states` 离开加入order_state_translationsorder_state_translations.order_state_id = order_states.id 其中order_state_translations.locale = ar 偏移 1)`
    • 嗯,是的,这实际上是您遇到的 MySQL 的限制。如果您要添加limit(100)(或任何其他大于您希望从数据库接收的记录数量的数字),它将起作用。但由于这是 hacky 并且添加了一些您将来可能无法调试的功能,因此最好远离它。
    【解决方案2】:

    首先感谢 Namoshek 指南,但 skip(1) 对此无效,但 slice(1) 有效

    这是最后一个查询

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

    工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2010-09-27
      相关资源
      最近更新 更多