首页 > 解决方案 > PHP Laravel - Eloquent 在调用方法 json 时随机返回布尔字段,有时为 0 1,其他为 true false

问题描述

我正在使用 Laravel Eloquent 编写一个 REST API。当调用jsonfromresponse()以返回对象时,布尔字段有时返回为 0/1,有时返回为 false/true。我想统一格式并将其全部设为 0,1 或 false,true 而不是随机的

这是代码示例:

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

这返回 0,1

并且此代码在创建对象时返回true,不仅对于状态,而且对于布尔值中的布尔值$obj

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

那么,如何使它们全部为 0 和 1 或全部为真或假?

标签: phpjsonlaraveleloquent

解决方案


尝试为模型中的所有布尔字段强制转换属性。

protected $casts = [
    'is_published' => 'boolean',
];

推荐阅读