Задать вопрос
  • Как в Yii2 включить изображение в виджет?

    @qorp Автор вопроса
    Спасибо ValentineK, подтолкнул в нужном направлении. Нашел ответ здесь
    Ответ написан
    Комментировать
  • Как в yii2 лучше обрабатывать дату с datepicker?

    @qorp
    Тема рассматривалась давно, но вдруг кому пригодится, сам столкнулся с такой задачей. Как вариант

    Создаем поведение DateToTimeBehavior

    <?php
    
    namespace common\behaviors;
    
    use yii\behaviors\AttributeBehavior;
    use yii\base\InvalidConfigException;
     
    
    class DateToTimeBehavior extends AttributeBehavior {
    
        public $timeAttribute;
    
        public function getValue($event) {
    
            if (empty($this->timeAttribute)) {
                throw new InvalidConfigException('Can`t find "fromAttribute" property in ' . $this->owner->className());
            }
            if (!empty($this->owner->{$this->attributes[$event->name]})) {
                $this->owner->{$this->timeAttribute} = strtotime($this->owner->{$this->attributes[$event->name]});
                return date('d.m.Y', $this->owner->{$this->timeAttribute});
            } else {
                if (!empty($this->owner->{$this->timeAttribute})) {
                    $this->owner->{$this->attributes[$event->name]} = date('d.m.Y', $this->owner->{$this->timeAttribute});
                    return $this->owner->{$this->attributes[$event->name]};
                }
            }
            
            return date('d.m.Y', time());
        }
    
    }


    В модели создаем свойство для хранения даты в формате 'd.m.Y' , или другом удобном для вас формате (про валидацию главное не забыть) . Данное поведение будет записывать значение в поле time если мы что то получили от формы. Иначе будет инициализироваться переменная date в модели по значению в time.

    ... ... ...
    use common\behaviors\DateToTimeBehavior;
    
    ... ... ...
       public $date;
    ... ... ...


    И подключаем созданное поведение к нашей модели

    ... ... ...
    public function behaviors() {
            return [
                [
                    'class' => DateToTimeBehavior::className(),
                    'attributes' => [
                        ActiveRecord::EVENT_BEFORE_VALIDATE => 'date',
                        ActiveRecord::EVENT_AFTER_FIND => 'date',
                    ],
                    'timeAttribute' => 'time', //Атрибут модели в котором хранится время в int
                ],
            ];
        }
    ... ... ...


    во view в activeField выводим

    use kartik\date\DatePicker;
    
    <?php $form = ActiveForm::begin(); ?>
     <?= $form->field($model, 'date')->widget(
           DatePicker::className()
        )?>
    <?php ActiveForm::end(); ?>
    Ответ написан
    Комментировать
  • Как внедрить yii2 в действующий проект?

    @qorp Автор вопроса
    Спасибо дружище!
    Ответ написан
    Комментировать
  • Мультизагрузка изображений в asofter/yii2-imperavi-redactor поддерживается?

    @qorp Автор вопроса
    Спасибо чел!
    Ответ написан
    Комментировать