Записываются пустые значение?

В Yii Framework пустые значения могут быть записаны в базу данных, в зависимости от типа свойства и настроек модели. Однако, давайте рассмотрим случай, когда мы хотим записать пустое значение в атрибут модели.

Сначала необходимо определить тип данного атрибута в модели. Например, предположим, что у нас есть модель User, у которой есть атрибут name:

class User extends yiidbActiveRecord
{
    // ...
    public function rules()
    {
        return [
            // ...
            ['name', 'string'],
            // ...
        ];
    }
    // ...
}

В данном случае тип атрибута name - строка. Если мы хотим, чтобы пустое значение было допустимым, то мы можем задать параметр skipOnEmpty в правилах валидации атрибута:

class User extends yiidbActiveRecord
{
    // ...
    public function rules()
    {
        return [
            // ...
            ['name', 'string', 'skipOnEmpty' => false],
            // ...
        ];
    }
    // ...
}

Теперь, при сохранении модели, пустое значение будет записано в базу данных, если атрибут name имеет значение null или пустую строку.

Пример использования:

$user = new User();
$user->name = ''; // или $user->name = null;
$user->save();

В результате выполнения этого кода, пустое значение атрибута name будет записано в базу данных.

Однако, если вы хотите запретить запись пустых значений в базу данных, вы можете добавить проверку на пустое значение перед сохранением модели. Например:

class User extends yiidbActiveRecord
{
    // ...
    public function beforeSave($insert)
    {
        if (empty($this->name)) {
            // Здесь можно выполнить какие-то действия в случае пустого значения
            return false; // Запрещаем сохранение модели
        }
        
        return parent::beforeSave($insert);
    }
    // ...
}

В этом примере, если атрибут name имеет пустое значение, то метод beforeSave() вернет false, и модель не будет сохранена в базу данных.

В итоге, в Yii Framework, вы можете контролировать запись пустых значений в базу данных, изменяя правила валидации модели и добавляя проверки перед сохранением.