Yii2 为什么使用状态常量 10 而不是 1?

标签 yii yii2 yii2-advanced-app yii-migrations

我刚开始使用 Yii 2 框架进行开发,并安装了 officially advanced app .

用户表的迁移脚本将“10”定义为“状态”列的默认值

'status' => $this->smallInteger()->notNull()->defaultValue(10),

我只是想知道他们为什么使用这个?

过去我分别使用 bool 值 (true/false) 0/1(在 mssql 中存储为 smallint 或 bit)。

最佳答案

看看 common\modules\User 类的内容。状态有两个常量:

const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;

不使用 bool 类型,因为它假定使用多个状态(超过两个),不仅限于已删除和事件(在这种情况下,我们可以简单地使用 bool 列 is_active 或类似的那个)。

010 用作一种边界值,以便将来在其间添加其他常量。也是一种极端的状态,而其他的都是中间状态。

常量的实际值可以变化,更重要的是一旦它被声明并且一些数据已经存在,你不能简单地将它更改为另一个值而不进行数据迁移。

但是如果你对这些值不满意,你可以把它改成01,其他的加成23 以此类推。

您也可以完全删除它并将列设为 bool 值并将其重命名为 is_active 正如我之前所说的。

请记住 - 它只是一个模板,您可以根据需要对其进行更改。

关于Yii2 为什么使用状态常量 10 而不是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653000/

相关文章:

mysql - yii2 在与 ActiveRecord 的连接中进行另一个查询

php - Yii2 : Vote for a Post in AJAX or Pjax

yii2:当我使用 renderPartial 方法加载页面时, Assets 包不加载 Assets

php - yii-boostrap 不加载 css 或 js 文件

yii - 如何为 Yii 定制面包屑小部件的链接?

php - 在 yii 中使用 listdata 连接 2 列

mysql - xAxis 类别 Highcharts

Yii2主题集成

php - 如何在yii2中创建传递两个参数的absoluteurl

php - Yii2 高级模板在控制台中使用前端模型