Есть форма:
<?php $f = ActiveForm::begin(['options' => ['id' => 'contact', 'class' => 'floating-labels m-t-40']]); ?>
<?php echo $f->field($form, 'tel') ?>
<?php echo $f->field($form, 'skype') ?>
<?php echo $f->field($form, 'whatsapp') ?>
<?php echo $f->field($form, 'index') ?>
<?php echo Html::submitButton('Сохранить', ['class' => 'btn btn-danger']); ?>
<?php ActiveForm::end(); ?>
Сама модель формы:
<?php
namespace app\modules\dashboard\models;
use Yii;
use yii\db\ActiveRecord;
/**
*
*/
class ContactForm extends ActiveRecord
{
public static function tableName() {
return 'contact';
}
public function rules()
{
return [
[['tel', 'skype', 'whatsapp', 'index'], 'trim'],
[['tel', 'skype'], 'required'],
];
}
public function attributeLabels()
{
return [
'tel' => 'Номер телефон',
'skype' => 'Логин Skype',
'whatsapp' => 'Номер whatsapp',
'index' => 'Ваш индекс',
];
}
}
?>
В контроллере у меня:
public function actionProfile() {
$id = Yii::$app->user->identity->id;
$user = ContactForm::find()->where(['=', 'user_id', $id])->one();
$form = new ContactForm();
if ($form->load(Yii::$app->request->post()) && $form->validate()) {
$id = Yii::$app->user->identity->id;
$user = ContactForm::find()->where(['=', 'user_id', $id])->one();
$user->tel = Html::encode($form->tel);
$user->skype = Html::encode($form->skype);
$user->whatsapp = Html::encode($form->whatsapp);
$user->index = Html::encode($form->index);
$user->save();
return $this->refresh();
}else{
return $this->render('profile', compact('form', 'user'));
}
}
Собственно вопрос: как сделать что бы поля input автоматически заполнялись данными из БД?
Пробовал в форме делать
<?php echo $f->field($form, 'tel')->textInput() ?>
но не чего не происходит.