Код контроллера:
public function update(ContractTypeStoreAndUpdateRequest $request, ContractType $contractType): ContractTypeResource
{
$contractType->is_active = $request->input('is_active');
$contractType->name = $request->input('name');
$contractType->short_name = $request->input('short_name');
$contractType->description = $request->input('description');
$pdo = DB::connection()->getPdo();
$pdo->exec('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');
DB::beginTransaction();
if ($request->has('feature')) {
if ($contractType->contracts()->count() !== 0) {
throw ValidationException::withMessages(
[
'feature' => 'Тип договора имеет привязанный договор изменить невозможно',
]
);
}
$contractType->feature = $request->input('feature');
}
$contractType->save();
DB::commit();
return ContractTypeResource::make($contractType);
}
Когда я запускаю тест для этой точки, я получаю следующую ошибку:
Актив sql транзакция: 1568 Характеристики транзакции не могут изменить во время выполнения транзакции
Я понимаю сообщение об ошибке, но не могу предположить, где transaction
может начинаться раньше? Laravel
под капотом что-то делает с transaction
(проверка, аутентификация)? Как найти место, где транзакция началась раньше?