Repository navigation
Version 5.4.0
Модель называет класс, в который читаются её строки
Запись держит значения строки, поэтому всё, что строка таблицы умеет
отвечать, принадлежит записи. Класс написать было можно, а вернуть из
запроса нельзя: Query создавал Record по имени класса, записанному руками
в пяти местах, и наследник нигде не появлялся.
Model::$record называет класс, newRecord() его создаёт, recordClass()
отдаёт имя. Запрос спрашивает модель везде, где делает запись: find(),
first(), get(), cursor(), create() и связь, никого не нашедшая. Имя, не
являющееся Record, выбрасывает UnexpectedValueException.
Класс проверяется один раз на модель: результат читается одним и тем же
классом, а проверка на строку стоила бы поиска на строку. Модель, ничего
не назвавшая, читается в Record, как раньше.
Багфикс (src/Collection.php, tests/CollectionTest.php):
pluck() больше не теряет записи с пустой колонкой
array_column() над объектами спрашивает у них __isset(), а он для null
отвечает false, поэтому строка с пустым значением выпадала из результата
целиком — вместе со своим ключом. Таблица настроек из 43 строк, где одно
значение пустое, давала 42 ключа, и чтение недостающего роняло вызвавший
код.
Значения читаются обходом: пустая колонка — колонка тоже, и запись
остаётся на своём месте со значением null. Массивы, которые тоже кладут
в коллекцию, читаются по-прежнему.