私は2つの配列を持っています。 1つは$ categoriesで、私のデータベースからすべてのカテゴリを取得し、もう1つは$ preSelectedCategoriesで、フォームがロードされるときにチェックボックスのリストで事前に選択する必要があるカテゴリが含まれています。私はこれをやろうとしました:あらかじめ選択されたCActiveFormの項目 - >チェックボックスYiiのリスト
<?php echo $form->labelEx($model,'category_id'); ?>
<?php echo $form->checkBoxList($model, 'category_id', $categories, $preSelectedCategories, array('multiple'=>true)); ?>
<?php echo $form->error($model,'category_id'); ?>
私は成功しませんでした。誰も私がこの問題を解決するのを助けることができますか?ありがとう!
編集:私はすでに:: CheckBoxListのCHTMLを使用して助けることができることを知っていたが、私はここにしたいことはCActiveFormを使用することです:: CheckBoxListの私は、チェックボックスのリストを検証するためにモデルを使用していますので。
コントローラーで事前にチェックされた 'category_id'を設定する方法がわかりません。あなたは私に例を教えていただけますか? –
コントローラのアクションで '$ this-> render();'を呼び出す前に '$ model-> category_id = array_merge((array)$ model-> category_id、$ preSelectedCategories);これらの値をどのように保存しているのか、そのフィールドがモデル上でどのように定義されているのかわからないので、これはうまくいかないかもしれませんが、一般的な考えです。 (コントローラとモデルコードを追加しても問題が解決しない場合は、ヘルプが必要です) – DCoder
ありがとうございます、あなたのソリューションはかなりうまくいきます!ビューをレンダリングする前にモデル属性の値を設定できることを忘れました。 –