Как использовать карту для значения ключа, когда ключ первый? - PullRequest
0 голосов
/ 23 ноября 2018

Что я пытаюсь сделать, это получить данные из таблицы (это ajax-запрос), отсортировать и отправить для просмотра.Хочу показать в настройках.Я должен изменить идентификатор со значением, чтобы сделать сортировку JS по значению.

Быстрый пример

ModelVehicle::where('make_id', $request->make_id)->orderBy('name')->pluck('id', 'name');   

и JS

$("#model_id").empty();
    $("#model_id").append(new Option(data.please_select, 0));
    $.each(data.models, function(index, item) {
        $("#model_id").append(new Option(index, item));
    });

В этом случае это именно то, что мне нужно, но теперь мне нужно использовать карту, потому что я использую языковой файл иу меня есть код ниже

Category::find($request->category_id)->orderBy('public_name')->pluck('id', 'public_name')->map(function ($key, $item)  {
    return __('general.' . $item . '');
})

, но результат

enter image description here

Я попытался изменить карту функции, но безрезультатно.Есть ли способ сделать это на стороне сервера?или я должен использовать JS для сортировки и изменения моего массива?

1 Ответ

0 голосов
/ 23 ноября 2018

Я не уверен, правильно ли я понимаю вашу проблему.Я понимаю, что проблема в том, что вы получаете коллекцию с массивами ['id', 'public_name'] вместо ['public_name', 'id'].

. Вы не можете манипулировать ключом с помощью map, но вы можете сделать следующее:

Category::find($request->category_id)->orderBy('public_name')->pluck('public_name', 'id')->map(function ($key, $item)  {
    return __('general.' . $key . '');
})->flip();

Это создает коллекцию массивов ['id', 'public_name'], затем map заменяет значения на перевод, после чего мы flip значения и ключи, поэтому ['public_name', 'id'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...