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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ivan_sms
Сообщения: 6
Зарегистрирован: 2018.12.19, 14:35

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

Сообщение ivan_sms » 2018.12.28, 14:41

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

Аватара пользователя
Dominus
Сообщения: 799
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

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

Сообщение Dominus » 2018.12.28, 21:03

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
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

steaze
Сообщения: 30
Зарегистрирован: 2017.01.28, 21:25

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

Сообщение steaze » 2018.12.28, 22:59

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

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

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

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

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

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

urichalex
Сообщения: 965
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex » 2018.12.29, 08:58

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


Usick
Сообщения: 31
Зарегистрирован: 2017.04.11, 12:07

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

Сообщение Usick » 2019.04.11, 12:58

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

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

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

Ответить