Laravel - API возвращает поля в виде строки, пока они находятся в БД - PullRequest
2 голосов
/ 01 апреля 2020

У меня есть следующий код:

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

В БД большинство полей моделей DailyMission / userProgress являются целыми числами, но API возвращает их в виде строки.

для пример:

{
price: "123"
}

вместо:

{
price: 123
}

Есть идеи, что может вызвать эту проблему?

Версия:

"laravel/framework": "5.2.*",

Ответы [ 3 ]

2 голосов
/ 01 апреля 2020

В вашей модели вы должны определить поле как целое число в атрибуте $cast.

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

Для получения дополнительной информации вы можете прочитать документы, открыв следующую документацию ссылка .

0 голосов
/ 01 апреля 2020

Просто поменяйте в DailyMission модели

protected $casts = [ 'price' => 'integer' ];
0 голосов
/ 01 апреля 2020

Установка и включение расширения mysqlnd может решить эту проблему. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...