PHP Laravel - Eloquent при вызове метода json случайным образом возвращает логические поля, иногда равные 0 1, а другие - как true false. - PullRequest
0 голосов
/ 10 февраля 2019

Я использую Laravel Eloquent для написания REST API.При вызове json из response() для возврата объекта логические поля иногда возвращаются как 0/1 и как false / true другие.Я хотел бы унифицировать формат и сделать все это как 0,1 или как ложное, true вместо случайного

вот пример кода:

public function show($id)
{
    $obj = MyObject::findOrFail($id);
    return response()->json($obj,200);
}

это возвращение 0,1

и этот код при создании объекта возвращает true, false не только для состояния, но и для логических значений в $obj

return response()->json([
        'status' => (bool) $obj,
        'data'   => $obj,
        'message' => $obj ? 'new obj created!' : 'an error has occurred'
    ], 201); 

Итак, как сделать их все0 и 1 или все правда или ложь?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Попробуйте использовать свойство cast для всех полей boolien в модели.

protected $casts = [
    'is_published' => 'boolean',
];
0 голосов
/ 10 февраля 2019

Используйте Laravel Accessor Документы

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function getIsPublishedAttribute($value)
    {
        return $value == 1 ? true : false;
    }
}

Он всегда будет возвращаться в зависимости от вашего $value.

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