Вытаскиваю список полей с БД
$this->model->getAttributes()
Получаю
array(6) {
["category_id"]=>
NULL
["slug"]=>
NULL
["name"]=>
NULL
А теперь вопрос почему возвращает NULL, если в БД тип поля NOT NULL ? Почему просто не вернуть пустую строку(которая собственно мне и нужна) ? В чем логика такого поведения ?
У меня проверка стоит в модели
[['name', 'content', 'category_id'], 'required'],
В итоге он спокойно сохраняет эти NULL обратно в БД o_O
Как получить заветные пустые строки, вместо NULL ?
Версия Yii 2.0.13.1(stable)
Доброе утро!
Так происходит потому что поля вашего БД в классе модели отмечаются как свойства. И если в базе поле пустое оно принимается как false и не записывается в модель и поэтому поле останется как не определенное то есть null. Это можно довольно просто исправить.
class Model extends yii\db\ActiveRecord {
public $id;
/**
В итоге если в БД это поле будет пустым то вы получаете
пустую строку...
*/
public $some_string_field = '';
// Другие методы моделя
}
Пишу проект, в котором серверная часть на PHP запускается в режиме демона, те