選択したタグ入力をMySQLデータベースに保存するためにSelect2ウィジェットを使用しました。私は010102, 010103, 010299
のようなものがデータベーステーブルに格納されることを期待しています。ここでYii2 Kartik Select2複数のタグ入力文字列エラー
が更新view.php
echo $form->field($model, 'SpField')->label(false)->widget(Select2::className(), [
'data' => ArrayHelper::map(Supplierfield::find()->all(), 'sfCode', 'sfCode'),
'options' => [
'multiple' => true,
'placeholder' => 'Choose tag ...',
],
'pluginOptions' => [
'tags' => true
]
]);
である:ここではモデル上の対応するルールは
public function rules()
{
return [
[['spCode', 'SpName','SpPhone', 'SpEmail', 'SpAddress', 'SpPostcode', 'SpTown', 'SpState', 'SpDistrict','SpBumi', 'SpStatus'], 'required'],
[['RecordStamp','SpField'], 'safe'],
[['spCode'], 'string', 'max' => 7],
[['SpName', 'SpEmail'], 'string', 'max' => 50],
[['SpPhone'], 'string', 'max' => 20],
[['SpAddress'], 'string', 'max' => 100],
[['SpPostcode'], 'string', 'max' => 5],
[['SpTown', 'SpState'], 'string', 'max' => 30],
[['SpBumi', 'SpStatus'], 'string', 'max' => 15],
[['SpDistrict'], 'string', 'max' => 50],
[['spbalance','spfloatbalance'], 'number'],
[['SpField'], 'string', 'max' => 255, 'message' => 'Field must be a string'],
[['spCode'], 'unique'],
];
}
ですが、なぜ私はこのエラーを取得しています。入力フィールドは文字列でなければならないと言われています。
はFYI:SpField
はVARCHAR(255)であるのフィールドとsfCode
はVARCHAR(10)でのフィールド。
ご迷惑をおかけして申し訳ありません。
複数の配列を投稿する場合は、データを検証する前に文字列にする必要があります。あなたのモデルルールを提示してください –
@HasiburRahaman私は質問を更新しました。どのように文字列に変換するのですか? – Etic
1このルールを削除することができます。[2]この配列をjson_encodeを使って文字列に変換します。(このフィールドは文字列でなければなりません。 $ model-> SpField)を確認してから、 –