JSON代表bit/boolean字段显示字符串类型
JSON shows string type in behalf of bit/boolean field
{
"Status": true,
"Message": "Roles retrieved successfully",
"Data": [
{
"RoleID": 1,
"Role": "Super Admin",
"IsPredefined": "1",
"IsActive" : "1",
}
]
}
我正在以 json 格式获取以上结果。我正在使用以下查询从 MySql 数据库中获取数据。
我正在使用模型,我的代码是:RoleModel::all()
我正在使用 PHP-Laravel 5.3
有什么方法可以使结果集如下所示。
{
"Status": true,
"Message": "Roles retrieved successfully",
"Data": [
{
"RoleID": 1,
"Role": "Super Admin",
"IsPredefined": true,
"IsActive" : true,
}
]
}
问题出在 IsPredefined 中。我想检索它的布尔类型。在数据库中它的类型是 bit
也许你可以使用if()功能,所以
Select RoleID, Role, if(IsPredefined=1,'true','false') as IsPredefined form tblrole;
如果您使用的是 Eloquent 模型,则可以使用 Accessors and Mutators,因此请在 eloquent 模型中添加访问器方法。
public function getIspredefinedAttribute($value)
{
return ($value==1)?true:false;
}
Attribute Casting
我的模型如下
class RoleModel extends Model {
public $table = 'tblrole';
public $primaryKey = 'RoleID';
public $timestamps = true;
}
应该像下面这样
class RoleModel extends Model {
public $table = 'tblrole';
public $primaryKey = 'RoleID';
public $timestamps = true;
protected $casts = [
'IsPredefined' => 'boolean'
];
}
Moreover, Database table must have datatype = 'BIT' for boolean values
so that it may occupy only 0 or 1 values.
{
"Status": true,
"Message": "Roles retrieved successfully",
"Data": [
{
"RoleID": 1,
"Role": "Super Admin",
"IsPredefined": "1",
"IsActive" : "1",
}
]
}
我正在以 json 格式获取以上结果。我正在使用以下查询从 MySql 数据库中获取数据。
我正在使用模型,我的代码是:RoleModel::all()
我正在使用 PHP-Laravel 5.3
有什么方法可以使结果集如下所示。
{
"Status": true,
"Message": "Roles retrieved successfully",
"Data": [
{
"RoleID": 1,
"Role": "Super Admin",
"IsPredefined": true,
"IsActive" : true,
}
]
}
问题出在 IsPredefined 中。我想检索它的布尔类型。在数据库中它的类型是 bit
也许你可以使用if()功能,所以
Select RoleID, Role, if(IsPredefined=1,'true','false') as IsPredefined form tblrole;
如果您使用的是 Eloquent 模型,则可以使用 Accessors and Mutators,因此请在 eloquent 模型中添加访问器方法。
public function getIspredefinedAttribute($value)
{
return ($value==1)?true:false;
}
Attribute Casting
我的模型如下
class RoleModel extends Model {
public $table = 'tblrole';
public $primaryKey = 'RoleID';
public $timestamps = true;
}
应该像下面这样
class RoleModel extends Model {
public $table = 'tblrole';
public $primaryKey = 'RoleID';
public $timestamps = true;
protected $casts = [
'IsPredefined' => 'boolean'
];
}
Moreover, Database table must have datatype = 'BIT' for boolean values so that it may occupy only 0 or 1 values.