Laravel 5 当key是第一个键时,如何使用map作为键值?

Laravel 5 当key是第一个键时,如何使用map作为键值?,laravel-5,Laravel 5,我试图做的是从表中获取数据(这是ajax请求),排序并发送到视图。要在选择框选项中显示。我必须用值更改id,以使JS按值排序 快速示例 ModelVehicle::where('make_id', $request->make_id)->orderBy('name')->pluck('id', 'name'); 和JS $("#model_id").empty(); $("#model_id").append(new Option(data.please_sel

我试图做的是从表中获取数据(这是ajax请求),排序并发送到视图。要在选择框选项中显示。我必须用值更改id,以使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 . '');
})
但结果是


我试图修改映射函数,但没有结果。在后端有什么方法可以做到这一点吗?还是应该使用JS对数组进行排序和修改?

我不确定是否正确理解了您的问题。据我所知,问题是您得到的集合具有数组
['id',public\u name']
,而不是
['public\u 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']
,然后
映射将值替换为翻译,然后我们
翻转值和键,这样我们就有了
['public_name',id']