【问题标题】:Formatting JSON response in Laravel 5 for Select2.js在 Laravel 5 中为 Select2.js 格式化 JSON 响应
【发布时间】:2017-02-17 12:16:28
【问题描述】:

我正在填充一个城市列表(从下拉列表中选择一个县后),使用 Laravel 5.2 和 Select2.js 的 Ajax 调用。

我想格式化来自 ajax 调用的 JSON 响应,使其符合 Select2 标准以显示在下拉列表中 (id,text)

这是我的控制器:

public function postCounty(Request $request)
{
    if($request->ajax()) 
    {
        $county = County::findOrFail($request->input('county_id'));
        $cities = $county->cities()->orderBy('title', 'ASC')->get();
        return response()->json($cities);
    }
}

它工作正常并返回城市列表:

[
    {"id":1,"title":"City 1","slug":"city-1"},
    {"id":2,"title":"City 2","slug":"city-2"},
    {"id":3,"title":"City 3","slug":"city-3"}
]

我只需要检索列idtitle,所以我使用->pluck('title', 'id')

它返回这个:

{"1":"City 1","2":"City 2","3":"City 3"}

要在我的选择选项列表上正确显示结果,使用 Select2,我需要这样返回结果:

[
    {"id":"1","text":"City 1"},
    {"id":"2","text":"City 2"},
    {"id":"3","text":"City 3"}
]

我知道我可以使用 JavaScript 和 Select2 processResults 格式化来自 ->get() 数组的结果,但我想使用控制器来格式化 JSON 响应。

这是我的 JS 的简化版本:

$("#countyFilter").select2().on("select2:selecting", function(e) {
    var county_id = $(this).val();
    $.ajax({
        type:'GET',
        url: 'mysite.com/api/county',
        data: {county_id:county_id},
        success: function(data){
            $("#populateCities").select2({
                data:data
            });
        }
    });
});

该脚本几乎可以正常工作,只需要格式化 data

我的问题:

如何在控制器中格式化 JSON 响应,使其返回 [{"id":1,"text":"City 1"}] 而不是 [{"id":1,"title":"City 1","slug":"city-1"}]

【问题讨论】:

  • BTW formatting 的意思与您的想法不同。
  • @MarcinOrlowski 是否仅表示“删除”,就像“格式化硬盘”一样?也许我应该使用“输出”。我的英语还没到重点:)

标签: php ajax laravel-5 jquery-select2


【解决方案1】:

使用select('id','title')

    $county = County::findOrFail($request->input('county_id'));
    $cities = $county->cities()->select('id','title')->orderBy('title', 'ASC')->get();
    return response()->json($cities);

【讨论】:

  • 完美运行,谢谢。现在有没有办法将title 更改为text? (这也是我的问题)
  • select('id','title') 更改为select('id','title as text')
猜你喜欢
  • 2018-07-23
  • 2015-05-17
  • 2019-05-12
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多