laravel 5.2 транзакции

460
09 января 2017, 23:54

Пытаюсь создать строки в бд (Inno db)

DB::beginTransaction();
Company::create($request->all());

Запись создается вне зависимости от того, вызываю ли я DB::commit() или нет.

DB::rollBack() не работает. Почему такое поведение?

public function store(CreateCompanyRequest $request)
{
    DB::beginTransaction();
    Company::create($request->all());
}
Answer 1

Проверь еще раз точно какую версию DB ты используешь возможно у тебя там все же MyISAM стоит ? А еще попробуй использовать замыкание и вызови исключение, и посмотри на поведение, что произойдет.

в случае замыкания будет выглядеть так

DB::transaction(function()
{
    $company = Company::create([]);
    if( !$company )
    {
        throw new \Exception('Company not created');
    }
});

И попробуй обновиться до последней версии 5.2 именно, судя по bug трекеру, там проблем особо ни у кого не возникало с этим.

READ ALSO
Созданием Excel файла в PHP через PHPExcel

Созданием Excel файла в PHP через PHPExcel

Проблема с созданием Excel файла в PHP через PHPExcelНа выходе файл не хочет скачиваться и выдаёт ошибку, как на второй картинке

421
В MySQL не добавляются данные моим парсером

В MySQL не добавляются данные моим парсером

Вот кусок моего кода, ответственный за запись в базу:

375
Дополнительные поля modx revo

Дополнительные поля modx revo

Всем привет, сделал допполя на форме по этому уроку

481