我有一个模型,他有一个列(属性)存储逗号分隔的ID值。Yii2:Kartik Select2:模型属性的初始值
例如 电影具有列“类型”,包括一个以上的类型,例如:40,20,1,3
如何使用选择二插件来显示这些值时分离“多个” => true
如何将它们保存为逗号分隔值作为字符串。我想要一个可以快速灵活的解决方案。我知道你可以爆炸和爆炸的字符串,但似乎太多了。
任何帮助表示赞赏
我有一个模型,他有一个列(属性)存储逗号分隔的ID值。Yii2:Kartik Select2:模型属性的初始值
例如 电影具有列“类型”,包括一个以上的类型,例如:40,20,1,3
如何使用选择二插件来显示这些值时分离“多个” => true
如何将它们保存为逗号分隔值作为字符串。我想要一个可以快速灵活的解决方案。我知道你可以爆炸和爆炸的字符串,但似乎太多了。
任何帮助表示赞赏
如果我没记错通过默认选项作为插件的选项$配置的一部分:
echo $form->field($model, 'model_attribute_name')->widget(Select2::className(), [
'data' => $data
'options' => [
'class' => 'form-control',
'placeholder' => 'Choose Option...',
'selected' => 40
],
'pluginOptions' => [
'allowClear' => true,
],
])->label('Select2 Form Field');
这是从内存中粮FO盐在这里。 http://demos.krajee.com/widget-details/select2的文档对于如何做到这一点并不是很具体。
我不相信你能做到这一点。 Select2将数据作为数组发送,因此在保存之前仍然需要使用implode。我会做什么,而不是在你的模型类:
class MyModel extends \yii\db\ActiveRecord {
$public myArrayAttribute;
...
public function beforeSave($insert) {
if (parent::beforeSave($insert)) {
$this->myAttribute = implode(',', $this->myArrayAttribute);
return true;
}
return false;
}
public function afterFind() {
parent::afterFind();
$this->myArrayAttribute = explode(',', $this->myAttribute);
}
}
这样myArrayAttribute
将举行由逗号分隔字段中的值作为数组。当然,您需要为其添加验证规则,并在创建和更新表单中使用它来代替其他属性。