Поиск модели ActiveRecord по атрибутам FindOne() может завершится неудачей и вернёт null.
Эту ситуацию необходимо обрабатывать и возможно создавать новую модель с атрибутами поиска для продолжения работы с ней.
Эту задачу упрощает данный трейт, идея, которого заимствованна из Laravel.
Пример:
Код: Выделить всё
...
$model = ModelTable::firstOrNew(['id' => 50]);
Затем можно изменить другие свойства модели и сохранить её.
Код: Выделить всё
...
$model = ModelTable::firstOrCreate(['id' => 50]);
ссылки на трейт: https://www.yiiframework.com/extension/ ... -or-create, https://github.com/oleg-p/first-or-create