Подскажите, пожалуйста, как в представлении вывести в ActiveForm checkboxList, значение которые являются объектами модели переданными из контроллера? И как их потом считать в контроллере?
Если например модель Item, в ней есть поля id и checkbox_id. И есть модель CheckboxValues с полями id и name в которой мы храним все возможные значения чекбоксов.
В контроллере:
public function actionEdit($id)
{
$item = Item::findOne($id);
// Сохраняем
if ($item->load(Yii::$app->request->post())) {
if ($item->save()) {
Yii::$app->getSession()->setFlash('success', 'Значение сохранено успешно');
} else {
Yii::$app->getSession()->setFlash('error', 'Ошибка сохранения в базу');
}
}
// Получаем массив значений чекбоксов
$checkboxValues = \yii\helpers\ArrayHelper::map(CheckboxValues::find()->all(), 'id', 'name');
return $this->render('edit', [
'item' => $item,
'checkboxValues' => $checkboxValues
]);
}
Во вьюхе (edit.php):
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;
$form = ActiveForm::begin(['method' => 'post']);
echo $form->field($item, 'checkbox_id')->checkboxList($checkboxValues);
echo Html::submitButton('Сохранить');
ActiveForm::end();
@Pa3Py6aka Я создал новую модель `
namespace frontend\models;
use yii\base\Model;
class ReqModel extends Model
{
public $id ;
public $checkbox_id;
public function rules()
{
return [
[['id', 'checkbox_id', 'safe'],
];
}
}`
в контроллере
public function actionAntivirus($id)
{
$id = Yii::$app->getRequest()->getQueryParam('id');
$models = TestRes2GeneralInf::find()->where('id_TestRes1_all_types = :id', [':id' => $id])->all();
$result = ArrayHelper::map($models, 'id', 'Name'); /////////////////////
$item=new ReqModel();
return $this->render('antivirus', [
// 'searchModel' => $searchModel,
'models' => $item, 'result'=>$result,
]);
}
В представление
<?php $form = ActiveForm::begin([
'id' => 'antivirus-test-results',
'action' => ['/test-results/antivirus-result'],
'options' => ['method' => 'post']
]);
<?php
echo $form->field($models, 'checkbox_id')->checkboxList($result);
<div class="form-group">
<?= Html::submitButton('Результаты испытаний', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
<?php ActiveForm::end();?>
И всё равно ничего не пашет ((( Вроде всё правильно описал, понимаю каждую строчку, но в чем ошибка?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники