2017-07-15 14:46:20 237次浏览 3条回答 0 悬赏 20 金钱

缘何这么做?
1、考虑统一管理
2、每个AR模型都定义一些常量,其中有大量重复,比如定义STATUS_DELETED和STATUS_ACTIVE等等;
3、考虑到一些分层设计,直接采用Query或者db->createCommand()进行一些简单的数据库操作,需要用到一些常量条件。如果依然采用User::STATUS_DELETED这种就脱离了初衷。

考虑的办法就是新建一个php文件,直接将这些常量定义为数组形式,return返回、

不知道这样可行吗?是否有必要这样呢?

如果定义了一个这样的文件,那么怎么用它呢?难道要配置进components里面通过 Yii::$app获取?

yii2
  • 回答于 2017-07-17 08:48 举报

    可以的,
    可以直接把常量设置成全局的.就可以直接取了.

  • 回答于 2017-07-20 09:35 举报

    可以写在config/params.php中,用\Yii::$app->params['xxxx']获取

  • 回答于 2017-07-28 18:22 举报
    1. 重复的常量建议依旧重复,不要考虑复用
    2. 建议常量依旧定义在ar中,另外新建一个类统一管理这些常量,实现特性如:
      // def
      public static function getConst($name, $onlyValue = false){}
      // return 
      [
        1,2
      ]
      or
      [
        \common\models\ar\User::STATUS_ACTIVE => Yii::t('app','可用'),
        \common\models\ar\User::STATUS_DELETE =>  Yii::t('app','删除')
      ]
      
您需要登录后才可以回答。登录 | 立即注册
mydzoo
见习主管

mydzoo

注册时间:2017-01-05
最后登录:2017-11-14
在线时长:13小时4分

热门问题