【问题标题】:error using multiselect with EChosen extension Yii使用带有 Echosen 扩展 Yii 的多选时出错
【发布时间】:2018-03-16 19:28:33
【问题描述】:

我正在使用 Yii,我想使用 Echosen 扩展来制作多选下拉菜单。

这是我的表单代码:

<div class="control-group">
    <?php echo $form->labelEx($model,'PROJ_PLATFORM', array('class'=>'control-label')); ?>
    <div class="controls"><?php 
            echo Chosen::multiSelect($model, 'PROJ_PLATFORM', (CHtml::listData (MstEmailBody::model()->getList(),'CODE_NM', 'CODE_NM')),
                array(
                'empty'=>'asdasdasd',
                   // 'data-placeholder' => 'Tags',
                   'options'=>array(
                      'maxSelectedOptions' => 3,
                      'displaySelectedOptions' => true,
                )));
        ?>
        <span class="help-inline text-error"><?php echo $form->error($model,'PROJ_PLATFORM'); ?></span>
    </div>
</div>

但是我收到了这个错误:

Object of class MstEmailBody could not be converted to string

是什么导致了这个错误?我有眉毛,但我仍然没有解决方案。

有人可以帮助我吗?提前致谢

【问题讨论】:

  • 当我们尝试以字符串形式访问对象时会产生这种类型的错误,您可以尝试简单的方法&lt;?= $form-&gt;field($model, 'user_id')-&gt;dropDownList(Stops::getUserlist(),['multiple'=&gt;'multiple'] ) ?&gt; 进行多选
  • 这真的很有帮助。但是当我点击保存时,数据不想被保存。它说project platform is invalid。有什么我必须做的解决方案吗? @ParitoshMahale
  • 如果您签入控制器,您将看到 project_platform 在数组中。您需要将其组合起来(逗号分隔或循环输出)以将其存储在数据库中
  • 我应该编辑哪一边?我在if($model-&gt;save()){....} 及上面添加了这段代码,但它仍然不起作用。这是我刚刚创建的代码$multi = $model-&gt;PROJ_PLATFORM; if(isset($multi)){ foreach($multi as $banyak){ $semua = implode(', ', $banyak); } }@ParitoshMahale
  • 类似于$proj_platform_list = implode(",",$_POST['your_form_name_here']['PROJ_PLATFORM']); $model-&gt;PROJ_PLATFORM = $proj_platform_list; $model-&gt;save();

标签: php yii dropdown multipleselection


【解决方案1】:

这就是我的问题的解决方案

查看:

Chosen::activeMultiSelect($model, 'PIC_BSA', (CHtml::listData (MstResource::model()->getListBsa(),'RES_CD', 'RES_NM')),
                    array(
                       // 'data-placeholder' => 'Tags',
                       'options'=>array(
                          // 'maxSelectedOptions' => 3,
                          'displaySelectedOptions' => true,
                    )));

表格:

echo $form->dropDownlist($model,'PIC_BSA', 
                        (CHtml::listData (MstResource::model()->getListBsa(),'RES_CD','RES_NM')),
                            array(
                            'multiple'=>true,
                            )); 

控制器:

$model->PIC_BSA = explode(",", $model->PIC_BSA);
if(isset($_POST['TrnProjectIT']['PIC_BSA'])){
                $pic_bsa = implode(",",$_POST['TrnProjectIT']['PIC_BSA']);
                $model->PIC_BSA = $pic_bsa;
            }else{
                $model->PIC_BSA = '';
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 2014-05-13
    相关资源
    最近更新 更多