В проекте начали присходить ошибки перезаписи данных. Например пока выполняется долгая транзакция в которой мы, кроме всего другого, обновляем клиенту статус на 'status2', в месте в другом методе, который был запущен позже транзакции есть код:
$client = Client::model()->findByPk($clientId);
$client->name = 'Вася';
$client->save(false);
В итоге статус перезаписывается обратно на 'status1'. Потому-что activeRecord обновляет все поля.
Что бы обновить только name, мы должны прописать:
$client->save(false, ['name']);
Во многих местах проекта есть похожий код:
$client->doSomething();
//В методе doSomething, например код:
//$this->status = 'someStatus';
//$this->someField = 'value';
$client->save(false);
При сохранении клиента мы не можем написать перечень полей, т.к. в самом методе doSomething не происходит сохранения, а оно происходит снаружи и нам придется при каждом изменении метода, менять массив полей для сохранения везде где он применяется.
Есть ли способ обновлять только те поля, которые были изменены? В yii2 есть метод getDirtyAttributes который возвращает изменные поля, но как это сделать в Yii1?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите по этому проекту кое что (https://githubcom/annbin000/cinema_mvc)
Есть класс, который наследуется от orgjunit
Нужно сделать авто логин в приложенииСоздано оно на Android Studio и авторизация на Firebase