Сергей Сергеев
Знаток
(312)
1 год назад
Проблема может быть связана с тем, что в вашей модели RecordModel не указано поле для оптимистической блокировки, поэтому по умолчанию используется поле "version". Если поле для блокировки имеет другое имя, то нужно указать его в модели с помощью метода optimisticLock().
Например, если ваше поле для блокировки называется "lock_version", то нужно добавить следующий метод в модель RecordModel:
public function optimisticLock()
{
return 'lock_version';
}
Если после этого проблема не решится, то возможно, что в таблице базы данных нет поля для блокировки. В этом случае нужно создать поле с типом данных "integer" и названием, указанным в методе optimisticLock().
bio noricaУченик (79)
1 год назад
И в модели в и бд есть то что Вы писали.
Поэтому не пойму в чем может быть причина.
Странно конечно что в доках об этом ничего не говорится. Там есть пример только для update action
Пытаюсь реализовать action удаления ( приложение пишу используя Yii2 Optimistic Locks).
Но постоянно удаляет только строки с нулевой версией, а если версия больше или равно 1 то не удаляет, а срабатывает catch блок: Вот какой запрос в debug toolbar постоянно генерируется: хотя я удаляю другую строку не с версией 0.
Пожалуйста помогите!