Обязательные поля и activeInput?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Обязательные поля и activeInput?

Сообщение Sergalas »

вот так в модели у меня отмечены обязательные поля

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

  public function rules()
    
        {
                return [
                    [['user_id', 'city_id', 'payment',], 'required'],
                     ['street', 'required', 'message' => 'Укажите название улицы.'],
            ...
           }

таким образом я организую работу с формой

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

 <div class="col-xs-12 col-sm-4">
                <div class="form-group">
                    <?= Html::activeLabel($model,'street'); ?>
                    <?= Html::activeInput('text',$model,'street',['class'=>'form-control']) ?>
                </div>
            </div>
Собственно весь вопрос в том как можно при использовании `activeinput` отметить обязательные поля, учитывая что эти поля обязательные в модели. Использовать `Activeform` возможности нет
lan143
Сообщения: 8
Зарегистрирован: 2017.04.07, 16:05
Откуда: Волгодонск
Контактная информация:

Re: Обязательные поля и activeInput?

Сообщение lan143 »

Как вариант перегрузить Html::activeLabel и добавить в него добавление нужных пометок, если $model->isAttributeRequired($attribute) == true
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Обязательные поля и activeInput?

Сообщение Nerf »

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

<div class="form-group <?= $model->isAttributeRequired('street') ? 'required' : '' ?>">
    <?= Html::activeLabel($model, 'street'); ?>
    <?= Html::activeInput('text', $model, 'street', ['class' => 'form-control']) ?>
</div>

<style>
.form-group.required > label:after {
    color: red;
    content: ' *';
}
</style>
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Re: Обязательные поля и activeInput?

Сообщение Sergalas »

Nerf писал(а): 2018.01.12, 03:07

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

<div class="form-group <?= $model->isAttributeRequired('street') ? 'required' : '' ?>">
    <?= Html::activeLabel($model, 'street'); ?>
    <?= Html::activeInput('text', $model, 'street', ['class' => 'form-control']) ?>
</div>

<style>
.form-group.required > label:after {
    color: red;
    content: ' *';
}
</style>
а сообщения есть возможность выводить ?
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Re: Обязательные поля и activeInput?

Сообщение Sergalas »

lan143 писал(а): 2018.01.12, 01:53 Как вариант перегрузить Html::activeLabel и добавить в него добавление нужных пометок, если $model->isAttributeRequired($attribute) == true
А как это делать?
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Обязательные поля и activeInput?

Сообщение Nerf »

Sergalas писал(а): 2018.01.12, 08:12 а сообщения есть возможность выводить ?
Какие сообщения? Если вы про ошибки, то без ActiveForm ничего работать не будет.
Можете это посмотреть:
http://www.yiiframework.com/doc-2.0/yii ... r()-detail
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: Обязательные поля и activeInput?

Сообщение proctoleha »

Скажите пожалуйста, очень интересно, а почему нет возможности использовать ActiveForm? Такую крутую, интересную фичу yii2? Причем $model совсем необязательно должна быть экземпляром AR, можно же отнаследоваться и от обычной модели. Тут тебе и валидация, и сообщения об ошибках.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Re: Обязательные поля и activeInput?

Сообщение Sergalas »

proctoleha писал(а): 2018.01.12, 17:23 Скажите пожалуйста, очень интересно, а почему нет возможности использовать ActiveForm? Такую крутую, интересную фичу yii2? Причем $model совсем необязательно должна быть экземпляром AR, можно же отнаследоваться и от обычной модели. Тут тебе и валидация, и сообщения об ошибках.
В принципе я решил вопрос с применением ActiveForm
lan143
Сообщения: 8
Зарегистрирован: 2017.04.07, 16:05
Откуда: Волгодонск
Контактная информация:

Re: Обязательные поля и activeInput?

Сообщение lan143 »

Sergalas писал(а): 2018.01.12, 08:37
lan143 писал(а): 2018.01.12, 01:53 Как вариант перегрузить Html::activeLabel и добавить в него добавление нужных пометок, если $model->isAttributeRequired($attribute) == true
А как это делать?
Вот так например:

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

<?php

namespace app\helpers\Html;

class Html extends yii\helpers\Html
{
    public static function activeLabel($model, $attribute, $options = [])
    {
        $label = parent::activeLabel($model, $attribute, $options);
        
        if ($model->isAttributeRequired($attribute)) {
            $label .= ' *';
        }
        
        return $label;
    }
}
Ответить