• yii框架中的下拉菜单和单选框


    yii中的下拉菜单:

    第一种:

    <?= $form->field($model, 'parent_id')->dropDownList(ArrayHelper::map($data,'cat_id','new_cat_name') ,['prompt' => '请选择父级分类']) ?

    第二种:

    <?= $form->field($model, 'banner_address')->dropDownList(ArrayHelper::map(address::find()->all(),'ad_id','ad_name') ,['prompt' => '请选择广告位']) ?>

    两者的唯一区别就是ArrayHelper::map()的第一个参数不同,因为第一种是要做无限极分类的,所以用的是数组,第二种直接查表就可以了,很方便。

    ['prompt' => '请选择父级分类']表示默认选项,这里有一个问题就是,不知道怎么给默认的这个选项一个值,试了很多方法,默认选项对应的值一直是空的

    就是这样的:

    ‘请选择父级分类’一直没有对应的value值,所以提交时要验证不能为空。

    ArrayHelper::map()的用法:

    ArrayHelper::map( $array, $from, $to, $group = null )

    通过map方法将一个结果集或多维数组每项的2个字段抽取出来,一个作为key、一个作为value,重新组成一个数组作为结果返回

    第三个函数$group,这是一个可选参数,它能实现类似于sql的group by分组功能

    yii里的单选按钮:

    <? echo $form->field($model, 'is_show')->radioList(['1'=>'是','0'=>'否']) ?>

    单选按钮很简单,但是设置单选按钮的值是一个问题,查了资料,最后用了这一种

    public function actionCreate()
        {
            $model = new Banner();
            $model->is_show=1;
            if ($model->load(Yii::$app->request->post()) && $model->save()){
                $model->banner_img = UploadedFile::getInstance($model, 'banner_img');
                if ($model->banner_img && $model->validate()) {
                    $fileName = '../../uploads/' . date("YmdHis") . '.' . $model->banner_img->extension;
                    $model->banner_img->saveAs($fileName);
                    $data=Yii::$app->request->post();
                    $model->banner_img=$fileName;
                    $model->start_time=strtotime($data['Banner']['start_time']);
                    $model->end_time=strtotime($data['Banner']['end_time']);
                    $res=$model->save();
                    if($res){
                        return $this->redirect(['view', 'id' => $model->banner_id]);
                    }else{
                        return $this->render('create', [
                            'model' => $model,
                        ]);
                    }
                }else{
                    return $this->render('create', [
                        'model' => $model,
                    ]);
                }
            } else {
                return $this->render('create', [
                    'model' => $model,
                ]);
            }
        }

    就是在控制器里加了一个默认值,感觉不太科学,可是没有找到别的办法

    这一篇满满的都是问题,但还是不要脸的写了出来,方便以后看。。。

  • 相关阅读:
    SQL 列转行
    SQL 行转列
    ActionScript 3.0 学习笔记三
    VS 2010 添加扩展工具
    VS 2010 启动慢解决办法
    [SQL Server]游标示例
    SQL Server 2005 express TCP/IP 不能连接的配置
    FCKeditor.Net v2.6.3 上传图片的配置及注意事项
    HTTP/1.1 403 Forbidden
    存储过程中常使用的逻辑控制语句
  • 原文地址:https://www.cnblogs.com/ymk0375/p/6680817.html
Copyright © 2020-2023  润新知