Laravel 5.4 срывать

У меня проблема с функцией выщипывания laravel5.4.

Мне нужно получить список (для использования в form::select) со списком городов (cap_citta) и соответствующими почтовыми индексами (cap_cap) в качестве ключей.

В моем коде у меня есть следующая строка:

$items = Cap::pluck('cap_citta', 'cap_cap');

Проблема в том, что я получаю только частичный список.

если я напишу

$items = Cap::pluck('cap_citta');

вместо этого все идет правильно (но мне не хватает ключей).


person dds ss    schedule 16.03.2017    source источник
comment
Когда вы говорите неполный список, это связано с тем, что не все записи имеют cap_cap?   -  person Ohgodwhy    schedule 17.03.2017
comment
В базе данных все записи имеют cap_cap (первичный ключ) и cap_citta. По отдельности или с простым get() все ок, а вот с щипком не хватает некоторых пар.   -  person dds ss    schedule 17.03.2017
comment
Не совсем понятно, чего вы ожидаете. Можете ли вы уточнить?   -  person Hedam    schedule 17.03.2017
comment
Могут ли несколько городов иметь один и тот же почтовый индекс? в этом случае вам всегда будет не хватать некоторых, поскольку вы вводите «почтовый индекс», поэтому в вашем результате будет только 1 запись для каждого почтового индекса, поскольку ключи массива уникальны. Почтовый индекс недостаточно уникален, чтобы быть идентификатором.   -  person lagbox    schedule 17.03.2017
comment
Спасибо, проблема была именно в том, что cap_cap не уникален.   -  person dds ss    schedule 18.03.2017


Ответы (2)


Вы все делаете правильно с:

$items = Cap::pluck('cap_cap', 'cap_citta');

Вы уверены, что все записи имеют ключ - cap_citta ?

person Hedam    schedule 16.03.2017
comment
Ключи - это поле cap_cap в вашем примере - person dparoli; 17.03.2017
comment
Спасибо, теперь они заменены. - person Hedam; 17.03.2017

Может быть

$collection = Cap::all();
$items = $collection->pluck('cap_citta', 'cap_cap');

Удачи!

person Adam    schedule 16.03.2017