0

希望有人可以帮助我:

我想要一个包含一个且仅一个TRUE值的列。我想为一行设置一个值TRUE(或“1”),并确保剩余的行是FALSE(或“0”)。

如何使用 CakePHP 实现这一点?

4

1 回答 1

1

您不能在数据库级别强制执行此操作(好吧,如果您使用触发器,则可以)因此您必须使用 Model::beforeSave() 强制执行它

类似于以下内容:

public function afterSave() {

    if ($this->data['Model']['field'] == 1) {
        // set all other records to false
        $this->updateAll(array('field'=>0));
    }

}

保存记录时,它应该是唯一将“字段”设置为 true 的记录。

于 2012-06-29T10:15:43.997 回答