我使用的是MySql数据库,所以我在db模式中将列类型定义为Tinyint(1)。
在我的ActiveRecord中,我设置了布尔验证器。保存逻辑按预期工作。
我现在想要的是,当我调用Yii2 REST服务时,将布尔字段返回为真或假而不是1或0,因为在客户端,框架带有严格的比较(===)且1不相同是的。
当然,我可以在发送内容之前手动覆盖该值,或者在将其加载到模型之前在客户端覆盖,但我希望有一个更清晰的解决方案。
答案 0 :(得分:1)
在afterFind中,我会将值从0或1修改为true或false:
public function afterFind() {
$this->booleanField = ($this->booleanField === 1);
parent::afterFind();
}