如何在 yii2 中使用 select2 小部件选择多个值
Posted
技术标签:
【中文标题】如何在 yii2 中使用 select2 小部件选择多个值【英文标题】:how to select multiple values using select2 widget in yii2 【发布时间】:2018-06-18 03:15:04 【问题描述】:我在我的项目中使用 select to widget 和 'multiple' => true
<?php echo $form->field($model, 'task')->widget(Select2::classname(), [
'data' => $companiesList,
'options' => ['placeholder' => 'Select company type ...',],
'pluginOptions' => ['allowClear' => true,'multiple' => true,],
]);?>
但是当我选择多个值时会出错
如何使用select2选择多个值??
【问题讨论】:
能否添加您的型号代码? 【参考方案1】:在您的模型中更改您的规则添加行:
public function rules()
return [
....
['task','safe']
....
]
并从“字符串”行规则中删除任务! 在下一步中,您必须将此 ID 存储在多对多表中,或者将该链接字符串分隔符存储在单列中。
在你的控制器中添加这个:
public function actionCreate()
....
if ($model->load(Yii::$app->request->post()))
....
$task_string = "";
foreach($model->task as $singl_task)
$task_string.= $singl_task."-";
$model->task = $task_string;
【讨论】:
我希望选择的值是字符串,怎么做 @kiamoz,为什么不使用implode(','yii\helpers\ArrayHelper::getValue($model->task))
并摆脱 foreach
;)
@Goli 你可以使用 implode ,但是我的代码可以让你增加更多的灵活性,并且对所有的任务做更多的事情。比如在每个任务上添加一些计算......
@MuhammadOmerAslam chekc 以上以上是关于如何在 yii2 中使用 select2 小部件选择多个值的主要内容,如果未能解决你的问题,请参考以下文章
在 Yii2 Kartik Select2 小部件中,如何对选择事件进行 ajax 调用?
如果我使用 select2 小部件,如何发布表中记录的实际主键而不是 php Yii2 中的数组索引?