Mam następujący kod:

$data['daily_missions'] = DailyMission::with(['userProgress' => function($q) use ($user){
            $q->where('user_id',$user->id);
            }])
        ->orderBy('diamonds')
        ->where('is_daily',1)
        ->get();

W bazie danych większość pól modeli DailyMission / userProgress to liczby całkowite - ale API zwraca je jako ciągi znaków.

Na przykład:

{
price: "123"
}

Zamiast:

{
price: 123
}

Każdy pomysł, co może powodować ten problem?

Wersja:

"laravel/framework": "5.2.*",
2
TheUnreal 1 kwiecień 2020, 11:18

3 odpowiedzi

Najlepsza odpowiedź

W swoim modelu należy zdefiniować pole jako liczbę całkowitą w atrybucie $cast.

protected $casts = [
    'field_name' => 'integer',
];

Możesz przeczytać dokumenty, aby uzyskać więcej informacji, otwierając następującą dokumentację link.

2
Tpojka 1 kwiecień 2020, 14:21

Po prostu zmień swój model DailyMission

protected $casts = [ 'price' => 'integer' ];
0
Vikas Katariya 1 kwiecień 2020, 08:40

Zainstalowanie i włączenie rozszerzenia mysqlnd może rozwiązać ten problem. Mam nadzieję, że to pomoże.

0
hehe bu 1 kwiecień 2020, 08:22