Как устанавливать значения по умолчанию для моделей AR?

Какие значения можно задать по умолчанию для свойств модели, чтобы избежать ошибки Typed property not be accessed before initialization при получении первоначального состояния объекта?
  • 11 ноября 2023 г. 14:18
Ответы на вопрос 1
Для установки значений по умолчанию в моделях AR (Active Record) вам нужно использовать конструктор. В конструкторе вы можете инициализировать свойства модели значениями по умолчанию.

Вот пример:

```php
class YourModel extends \yii\db\ActiveRecord
{
    public $propertyName1;
    public $propertyName2;

    public function __construct($config = [])
    {
        // Установка значений по умолчанию
        $this->propertyName1 = 'default value 1';
        $this->propertyName2 = 'default value 2';

        parent::__construct($config);
    }

    // ...
}
```

Теперь при создании экземпляра модели значения `propertyName1` и `propertyName2` будут установлены соответственно в `'default value 1'` и `'default value 2'`.

Чтобы избежать ошибки Typed property not be accessed before initialization при получении первоначального состояния объекта, вы также можете объявить нужные свойства сразу со значениями по умолчанию:

```php
class YourModel extends \yii\db\ActiveRecord
{
    public $propertyName1 = 'default value 1';
    public $propertyName2 = 'default value 2';

    // ...
}
```

Теперь при создании экземпляра модели значения `propertyName1` и `propertyName2` будут установлены соответственно в `'default value 1'` и `'default value 2'`.
Похожие вопросы