web-dev-qa-db-ja.com

フォームの読み込み時にYii2.0CheckboxListアイテムをチェックするにはどうすればよいですか?

YII 2.0FrameworkでActiveformチェックボックスリストウィジェットを使用しようとしています

私の場合、チェックボックスリストとしてレンダリングされる言語の名前を持つ「list」という配列があります。これでそれが可能になりましたが、フォームが読み込まれるときにチェックボックスをオンにします。

$list = [0 => 'PHP', 1 => 'MySQL', 2 => 'Javascript'];
$list2 = [0,2];

次の行を使用して、HTMLヘルパークラスを使用して必要なものを実現できます。

<?= Html::checkboxList('CuisineId',$list2,$list); ?>

しかし、Activeform Widget CheckboxListを使用してこれを実行できるようにしたいのですが、これは documentation に従って次のように使用されます。

静的checkboxList($ items、$ options = [])

したがって、私の場合、$ itemsのパラメーターを渡す方法を考えました。これは次のようになります。

<?= $form->field($record, 'CuisineId')->checkboxlist($list);?> 

しかし今、私はチェックボックスをチェックできるようにするパラメータを渡す方法がわかりません。

8
Cristus Cleetus

さて、私は yiiframeworkフォーラム 自体から解決策を得ました。

解決策は、次のコード行を追加するだけで、機能しました。 :

$record->CuisineId = $list2;
4
Cristus Cleetus

解決
データベース

表示

コントローラ

$model = $this->findModel($id);
    $model->INDEXES =ArrayHelper::getColumn($model->publicationIndexes, 'INDEXES_ID');

    if ($model->load(Yii::$app->request->post())) {$model->save();}

表示(_form)

<?= $form->field($model, 'INDEXES')->checkboxList(ArrayHelper::map(Indexes::find()->all(), 'ID', 'NAME')) ?>