2017-03-22 14:15:32 1433次浏览 5条回答 0 悬赏 100 金钱

视图

<?= $form->field($model, 'type')->checkboxList(\common\models\Product::getType()) ?>

添加时报错
2017-03-22_140923.png

模型

    /**
     * @param null $type
     * @return array|string
     */
    public static function getType($type = null)
    {
        $data = [
            self::IS_NEW => '新品',
            self::IS_HOT => '热销',
            self::IS_GIRT => '赠品',
            self::IS_PROMOTION => '促销',
            self::IS_GROUP => '团购',
        ];
        if ($type === null) {
            return $data;
        } else {
            $str = '';
            foreach ($data as $k => $v) {
                if ($type & $k) {
                    $str .= ' ' . $data[$k];
                }
            }
            return $str;
        }
    }
  • 回答于 2017-03-22 15:16 举报
    $designlist = Tablename::find()->asarray()->all;
    

    渲染$designlist变量到模板

    <?= $form->field($model, 'name')->checkboxList(isset($designlist)?ArrayHelper::map($designlist,'id','name'):array()) ?>
    

    。。。其中的$designlist为查询出来的多条数据

    3 条回复
    回复于 2017-03-23 14:03 回复

    项目情况:类型是整型,不想改数据库,在model里定义常量,又定义了一个静态方法getType()来在视图中显示汉字,保存又想保存为数字,怎么弄啊,搞不懂

    回复于 2017-03-23 14:38 回复

    如果是多选的话,你这个整形是肯定不行的,你想想,你存多个选项的值变成这种(2333

    55)和(12,22,33,44)前者怎么通过代码实现?

    回复于 2017-03-23 14:43 回复

    是的哦,看样子还真行不通,尴尬了

  • 回答于 2017-03-22 15:17 举报

    需要引入 use yii\helpers\ArrayHelper;

  • 回答于 2017-03-22 15:18 举报

    你这里报类必须是整数,应该是你的rule规则写了这个字段为integer

  • 回答于 2017-03-22 21:00 举报

    应该rule里type的规则是integer

    方法一,把type规则改成string
    
    方法二,把建立一个数组,去把对应的文字转换成数字
    $type_int =[
                1 => '新品',
                2 => '热销',
                3 => '赠品',
                4 => '促销',
                5 => '团购',
    ]
    
    $type = array_keys($type_int,"热销")
    return $type
    
    2 条回复
    回复于 2017-03-23 14:02 回复

    项目情况:类型是整型,在model里定义常量,又定义了一个静态方法getType()来在视图中显示汉字,保存又想保存为数字,怎么弄啊,搞不懂,用array_keys页面显示的也是数字了

    回复于 2017-03-23 16:31 回复

    两个思路,一是在本页面就把类型值设置为数字,二是本页提交文本在入库前再转成数字(要关闭model中对type的验证)

  • 回答于 2017-03-24 19:34 举报

    多选存到库里怎么可能是整数呢,单选还差不多

您需要登录后才可以回答。登录 | 立即注册
卫沧澜
总监

卫沧澜

注册时间:2016-11-03
最后登录:2021-07-26
在线时长:44小时20分
  • 粉丝5
  • 金钱2215
  • 威望10
  • 积分2755

热门问题