Страница 1 из 1

Добавить в input кроме значения из базы что то свое.

Добавлено: 2018.12.28, 14:41
ivan_sms
Добрый день. У меня есть форма, в каждый инпут в ней добляются значения из базы из соответствующих полей. Можно ли сделать так что бы в инпут добавлялась еще строка помимо данных из базы? Например у меня в поле телефон из базы подставляется 380671122333, а мне хочется что бы оно выглядело как +380671122333. Я не понимаю в каком место мне надо сделать конкатенацию "+" . , это вообще возможно?
Вот так выглядит инпут в форме.
<?= $form->field($model, 'phone')->textInput(); ?>

Re: Добавить в input кроме значения из базы что то свое.

Добавлено: 2018.12.28, 21:03
Dominus
1. Так можно контроллере:

Код: Выделить всё

$model->phone = '+' . $model->phone;
return $this->render('update', [
    'model' => $model,
]);
2. А так можно в виде:

Код: Выделить всё

<?php $model->phone = '+' . $model->phone; ?>
<?= $form->field($model, 'phone')->textInput(); ?>
Можно поступить и так: https://getbootstrap.com/docs/3.3/compo ... oups-basic

Re: Добавить в input кроме значения из базы что то свое.

Добавлено: 2018.12.28, 22:59
steaze
Можно добавить геттер в модель. Тогда сможете эти данные использовать везде, где хочется. Например:

Код: Выделить всё

public function getPhonePlus() {
	return '+' . $this->phone;
}

public function setPhonePlus() {
	$this->phone = trim($this->phonePlus, '+');
}
В форме:

Код: Выделить всё

<?= $form->field($model, 'phonePlus')->textInput(); ?>

Re: Добавить в input кроме значения из базы что то свое.

Добавлено: 2018.12.29, 08:58
urichalex
А зачем вообще в поле его? Обязательно, чтобы сохранялось с плюсом? Можно сделать prepend addon в форме с плюсом, либо можно использовать Maskedinput

Re: Добавить в input кроме значения из базы что то свое.

Добавлено: 2018.12.29, 12:12
ivan_sms
Спасибо.

Re: Добавить в input кроме значения из базы что то свое.

Добавлено: 2019.04.11, 12:58
Usick
Dominus писал(а): 2018.12.28, 21:03 1. Так можно контроллере:
...
2. А так можно в виде:
3. В модели можно переопределить метод afterFind()

Код: Выделить всё

public function afterFind()
{
    parent::afterFind();
    $this->phone = '+' . $this->phone;
}