While plucking from a database, I get id
as strings.
$alphabets = new Alphabet();
return $alphabets->pluck('name', 'id');
Output
{
"1": "Apple",
"2": "Ball",
"3": "Cat"
}
Expected
{
1: "Apple",
2: "Ball",
3: "Cat"
}
But, when I reverse ID
and name
,
return $alphabets->pluck('id', 'name');
I get id as integer.
{
"Apple": 1,
"Ball": 2,
"Cat": 3
}
I'm not sure what's happening behind the scene. But how can I get ID in integer ? Actually, old flash session doesn't set value because of 1 vs "1"
in Form Collective.
{!! Form::select('alphabet', $alphabets, null, ['class' => 'form-control', 'multiple' => true]) !!}
Try this code
$alphabets = new Alphabet();
return $alphabets->all()->pluck('name', 'id');
Alphabet.php
You should cast your columns like this.
protected $casts = [
'id' => 'integer',
'name' => 'string'
];