【发布时间】: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
是什么导致了这个错误?我有眉毛,但我仍然没有解决方案。
有人可以帮助我吗?提前致谢
【问题讨论】:
-
当我们尝试以字符串形式访问对象时会产生这种类型的错误,您可以尝试简单的方法
<?= $form->field($model, 'user_id')->dropDownList(Stops::getUserlist(),['multiple'=>'multiple'] ) ?>进行多选 -
这真的很有帮助。但是当我点击保存时,数据不想被保存。它说
project platform is invalid。有什么我必须做的解决方案吗? @ParitoshMahale -
如果您签入控制器,您将看到 project_platform 在数组中。您需要将其组合起来(逗号分隔或循环输出)以将其存储在数据库中
-
我应该编辑哪一边?我在
if($model->save()){....}及上面添加了这段代码,但它仍然不起作用。这是我刚刚创建的代码$multi = $model->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->PROJ_PLATFORM = $proj_platform_list; $model->save();
标签: php yii dropdown multipleselection