Gibt es Fehler in der js-Konsole? Ich denke, dass dieses Problem scheint mit Assets Bündel von CheckboxMultiple Widgets zu sein. Es fehlt die abhängige Eigenschaft für JQuery Assets. Versuchen Sie, jQuery vor dem Render-Widget manuell zu registrieren. dataAttribute
Eigenschaft auch in neueste Version dieses Widget zu sein scheint unbekannt ... Dies funktioniert für mich:
$this->registerAssetBundle(yii\web\JqueryAsset::className());
echo $form->field($model, 'templates')->widget(CheckboxMultiple::className(), [
'attributeLabel' => 'templates',
'placeholder' => Yii::t('app', 'Select ...'),
'ajax' => [
'url' => Url::toRoute(['/site/templates']),
],
]);
Wo Vorlagen Attributbeziehung Modell ist, wie folgt aus:
public function getTemplates()
{
return $this->hasMany(TemplateModel::className(), ['owner_id' => 'id']);
}
und in SiteController Aktion Vorlagen:
public function actionTemplates()
{
Yii::$app->response->format = 'json';
$json = new \stdClass();
$query = new Query();
$query->select([
'id' => 'id',
'text' => 'name'
]);
$query->from(TemplateModel::tableName());
if ($search = Yii::$app->request->post('search', '')) {
$query->where(['like', 'name', $search]);
}
$query->orderBy([
'name' => SORT_ASC
]);
if ($itemsId = Yii::$app->request->post('itemsId', [])) {
$query->andWhere(['not in', 'id', $itemsId]);
}
$query->limit(20);
$command = $query->createCommand();
$data = $command->queryAll();
$json->results = array_values($data);
return $json;
}
In diesem Beispiel verwende ich Tabelle templates
mit Spalten: id
, name
ein nd owner_id
. Sie sollten das obige Skript in Ihre Namen von Modellen und Attributen ändern.
Ich werde versuchen, dies am Montag –
es nicht –
prüfen Fehler in js Konsole .. –