2017-01-19 3 views
0

У меня есть некоторые проблемы, с Выбор2, я хочу отправить значение из id целого числа, но есть проблема, здесь мой кодВыбор2 - Как установить значение строки идентификатора

контроллер

$user = User::select('user_reg_no as id', 'user_name as text')->get()->toArray(); 
return response()->json($user); 

JS

function get_user() { 
    res = $.ajax({ 
     type: 'get', 
     dataType: 'json', 
     url: SITE_URL, 
     async: false 
    }); 
    return res.responseJSON; 
} 

var data_user = get_user(); 

$('#user').select2({ 
    data: data_user 
}); 

, а затем, когда id является 0000345 , но в select2 стать 345, как с этим справиться?

+0

Можете ли вы отправить образец ответа json, который вы получаете от контроллера? –

+0

'[{" id ":" "," text ":" "}, {" id ": 256," text ":" Darth Vader "}, {" id ": 289," text ":" Zero " }] ' и на самом деле код 00256 и 00289 –

+0

Вы можете проверить свой стол? Я думаю, что на самом столе он сохраняется как 256 вместо 00256. –

ответ

1

Здесь id в вашем ответе JSON является целым числом, поэтому он удаляет предыдущие нули.

Вариант 1

вручную построить JSON ответ, а затем отправить ответ от контроллера

Вариант 2

Cast непосредственно атрибуты, используя $cast массив в Model как,

protected $casts = [ 
    'id' => 'string', 
]; 
+0

Вариант 1 и 2 оба не работают, поскольку данные JSON передаются как строка. Если в ответе есть 'application/json', система анализирует его и преобразует его в целое. –

+0

Это работает, спасибо, ты мой герой –