Я создал шаблон для поля формы (yii\bootstrap\ActiveForm
).
_form.php
<?php
echo $form->field($model, 'test_radio', [
'template' =>
'<div id="user-test_radio" value="" >
<p style="margin:0"><label>TYPE</label></p>
<p style="margin:0"><label><input type="radio" name="user[test_radio]" value="PF" checked=""/> PF </label></p>
<p ><label><input type="radio" name="user[test_radio]" value="PJ" checked=""/> PJ </label></p>
</div>'
])?>
Работает нормально и сохраняет данные в базе данных.
Но когда я пытаюсь обновить, значения не загружаются. Радиобокс не проверен.
Как создать шаблон и прочитать сохраненные данные из базы данных?
Действия контроллера:
public function actionCreate() {
$model = new User();
if( $model->load(Yii::$app->request->post()) && $model->save() ){
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('create', [
'model' => $model,
]);
}
/**
* Updates an existing User model.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id
* @return mixed
* @throws NotFoundHttpException if the model cannot be found
*/
public function actionUpdate($id) {
$model = $this->findModel($id);
if( $model->load(Yii::$app->request->post()) && $model->save() ){
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('update', [
'model' => $model,
]);
}
Это HTML-код, который я пытаюсь воспроизвести:
body {
margin: 10px;
}
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css" rel="stylesheet" />
<div class="col-md-12">
<legend>Demo</legend>
<div class="col-md-12">
<div class="row">
<div class="col-md-6 ">
<p>
</p>
<div class="form-group field-provider-demo_type">
<div id="provider-demo_type" value="">
<p style="margin:0"><label>TYPE</label></p>
<p style="margin:0"><label><input type="radio" name="Provider[demo_type]" value="PF" checked=""> PF </label></p>
<p><label><input type="radio" name="Provider[demo_type]" value="PJ" checked=""> PJ </label></p>
</div>
</div>
<p></p>
<p>
</p>
<div class="form-group field-provider-demo_default">
<div id="provider-demo_default">
<p style="margin:0"><label>DEFAULT</label></p>
<p style="margin:0"><label><input type="radio" name="Provider[demo_default]" value="Acme" checked=""> Acme </label></p>
<p><label><input type="radio" name="Provider[demo_default]" value="Custom" checked=""> Custom </label></p>
</div>
</div>
<p></p>
</div>
<div class="col-md-6 ">
<p>
</p>
<div>
<p style="margin:0"><label><input type="radio" name="Provider[demo]" value="Own"> Own</label></p>
<p><label><input type="radio" name="Provider[demo]" value="Service (freela)"> Service (freela)</label></p>
</div>
<p></p>
<p>
</p>
<div>
<p style="margin:0"><label>ASSIGNMENT</label></p>
<p style="margin:0"><label><input type="radio" name="Provider[demo_assignment]" value="Total"> Total</label></p>
<p style="margin:0"><label><input type="radio" name="Provider[demo_assignment]" value="Partial"> Partial</label></p>
<p style="margin:0"><label><input type="radio" name="Provider[demo_assignment]" value="Open source"> Open source</label></p>
</div>
<p></p>
</div>
</div>
</div>
<p></p>
</div>
EDIT
Ниже вы можете найти фактический HTML-контент внутри template
optino, который я пытаюсь преобразовать в Yii
<?php
echo $form->field($model, 'test_radio', [
'template' =>
'<div id="job-category" >
<h2>Category</h2>
<input type="radio" name="Job[category]" value="male"> Freelancer<br>
<p><label>Art</label></p>
<input type="radio" name="Job[category]" value="Diagrammer"> Diagrammer<br>
<input type="radio" name="Job[category]" value="Illustrator"> Illustrator<br>
<input type="radio" name="Job[category]" value="Cartographer"> Cartographer<br>
<p><label>ICO</label></p>
<input type="radio" name="Job[category]" value="Photographer"> Photographer<br>
<input type="radio" name="Job[category]" value="Cartoonist"> Cartoonist<br>
<p><label>TEXT</label></p>
<input type="radio" name="Job[category]" value="Author"> Author<br>
<p><label>LOT</label></p>
<input type="radio" name="Job[category]" value="Image Bank"> Image Bank<br>
<input type="radio" name="Job[category]" value="Literary Agency"> Literary Agency<br>
<input type="radio" name="Job[category]" value="News Agency"> News Agency<br>
</div>'
])?>