获取布尔值为true或false,而不是1或0

时间:2015-10-04 21:34:06

标签: yii2 yii2-model

我使用的是MySql数据库,所以我在db模式中将列类型定义为Tinyint(1)。

在我的ActiveRecord中,我设置了布尔验证器。保存逻辑按预期工作。

我现在想要的是,当我调用Yii2 REST服务时,将布尔字段返回为真或假而不是1或0,因为在客户端,框架带有严格的比较(===)且1不相同是的。

当然,我可以在发送内容之前手动覆盖该值,或者在将其加载到模型之前在客户端覆盖,但我希望有一个更清晰的解决方案。

1 个答案:

答案 0 :(得分:1)

在afterFind中,我会将值从0或1修改为true或false:

public function afterFind() {
    $this->booleanField = ($this->booleanField === 1);
    parent::afterFind();
}