我正在使用Laravel 5.2和Select2.js的Ajax調用填充城市列表(在從下拉列表中選擇一個縣後)。在Laravel 5中爲Select2.js格式化JSON響應
我想,使其符合選擇二指標分析顯示一個下拉列表上格式化從AJAX調用JSON響應(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"}
]
我需要只檢索列id
和title
,所以我用->pluck('title', 'id')
它返回:
{"1":"City 1","2":"City 2","3":"City 3"}
要我選擇列表選項上正確顯示的結果,利用選擇二,我需要的結果返回是這樣的:
[
{"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
需要進行格式化。
我的問題:
如何使返回的[{"id":1,"text":"City 1"}]
代替[{"id":1,"title":"City 1","slug":"city-1"}]
BTW'formatting'意味着什麼,從什麼不同您認爲。 –
@MarcinOrlowski這是否意味着像「格式化硬盤」中的「刪除」?也許我應該使用「輸出」。我的英語不在點:) – PhilMarc
http://www.dictionary.com/browse/formatting –