Подскажите, пожалуйста, как в представлении вывести в 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();?>
И всё равно ничего не пашет ((( Вроде всё правильно описал, понимаю каждую строчку, но в чем ошибка?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как правильно сделать мультиязычность в Laravel, что бы язык был в роуте, типа pl/team/1 ?
Не работает простейший ajax запросПри нажатии на кнопку должно отправляться письмо
здравствуйте, программирую на php без нескольких месяцев год, и пока что не могу точно понят в чём преимущество классов по сравнению с функциями,...
Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросовФайл, в котором обрабатываются данные,...