yii框架,如何用cmenu创建下拉菜单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii框架,如何用cmenu创建下拉菜单相关的知识,希望对你有一定的参考价值。
参考技术A jqueryslidemenu,好像是个扩展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, ]); } }
就是在控制器里加了一个默认值,感觉不太科学,可是没有找到别的办法
这一篇满满的都是问题,但还是不要脸的写了出来,方便以后看。。。
以上是关于yii框架,如何用cmenu创建下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章
如何用Selenium C#从Devextreme下拉菜单中选择一个值?