Nature

Nature

一个美丽的世界,总值得去疯狂。

  • 财富值2580
  • 威望值10
  • 总积分2880

个人信息

  • 2015-11-02 已签到
    连续签到13天,获得了20个金钱
  • 发表了说说
    昨天忘签了,补签卡都用完了...
  • 2015-10-31 已签到
    连续签到11天,获得了20个金钱
  • 2015-11-01 已签到
    连续签到12天,获得了20个金钱
  • 2015-10-30 已签到
    连续签到10天,获得了20个金钱
  • 赞了回答
    1. 如果常量数量多、汉字内容需要在线修改或增加的话,一般在数据库中建一个字典表,保存id和字面的映射关系,但平时变化不大可以写到缓存中,从缓存中读取,当内容发生变化时再更新缓存。

    2. 如果常量数量不多、汉字内容也不需要在线调整的话,可以新建一个统一管理id和字面关系的配置文件,比如放在common/config/constants.php里:

    <?php
    return [
        'role' => [
            0 => '管理',
            1 => '用户',
            2 => '客户',
        ],
    ];
    

    然后,在common/config/params.php里增加constants项:

    <?php
    return [
        'constants' => require(__DIR__ . '/constants.php'),
    ];
    

    在Model类(User)里可以增加一个配置索引项与constants中的内容关联:

    const ADMIN = 0; //管理
    const USER = 1; //用户
    const CLIENT = 2; //客户
    
    public static $constantIndex = 'role'; // 与constants.php里的配置组对应
    

    这样,在业务代码中要获取id对应的字面就可以这样:

    $adminRoleLabel = Yii::$app->params['constants'][User::$constantIndex][User::ADMIN];
    

    foreach ($users as $user) {
        $roleLabel = Yii::$app->params['constants'][User::$constantIndex][$user->role];
    }
    
  • 赞了回答

    if(1) echo 用户
    if(2) echo 客户
    ……

  • 2015-10-29 已签到
    连续签到9天,获得了20个金钱
  • 回复了 的评论

    新人发帖,格式不好请见谅。请大家多多指教

    感谢帮助!

  • 新人发帖,格式不好请见谅。请大家多多指教

总监 等级规则
2880/5000
资料完整度
60/100
用户活跃度
0/100

Ta的关注

2

Ta的粉丝

8

Ta的访客

13