Допустим, у меня есть Article
Сборник, и я хочу получить популярные статьи.
Итак, во-первых, я делаю scopePopular()
метод в Article
метод. Очень просто.
Теперь я хочу получить их id
s, так что я сделаю это:
Article::popular->pluck('id');
Результатом будет ассоциативный массив:
[
0 => 1,
1 => 34,
2 => 17
...
];
Я хочу получить нормальный массив, без ключей, как:
[1, 34, 17]
Я знаю, что могу сделать что-то вроде этого:
array_values(Article::popular->pluck('id'));
Но я верю, что у Laravel есть гораздо более чистый способ сделать это. Есть идеи?
Все массивы имеют индексы.
[
0 => 1,
1 => 34,
2 => 17
];
равно
[1, 34, 17]
Другими словами:
$a1 = [0 => 1, 1 => 34, 2 => 17];
$a2 = [1, 34, 17];
$a1 === $a2;
// returns True
Ты можешь использовать values()
метод, который является оберткой для array_values()
:
Article::popular->pluck('id')->values();
Это именно то, что вам нужно и что вы получаете, по умолчанию php имеет инкрементный ключ от 0.
Вы хотите увидеть что-то вроде массива JSON, который я предполагаю.
Просто сделайте возврат массива, и вы увидите массив JSOn в браузере, но внутренне это только так.
Пожалуйста, подтвердите и дайте мне знать. Спасибо