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_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_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']
。
推荐阅读
- laravel - 在表格行VueJS中循环返回的计算属性的对象
- keras - Keras中二进制分类的单位计数
- javafx-8 - 访问被点击的 imageView
- python - 根据列表将二进制值添加到列数据框
- express - 如何在没有关系嵌套对象的情况下发帖并获取 Web 服务
- flutter - Dart (Flutter) 图像到 base64 的转换
- python - 以特定方式浏览列表
- flutter - Flutter 应用程序未在 Release 模式下运行,但在 Debug 和 Profile 下运行
- azure - 使用数据工厂将 .tsv 文件数据映射到 Azure 数据仓库时出错
- javascript - 如何在一个应用程序中使用选项卡和页面?