Метод сохранения не работает в laravel контроллере без сообщения об ошибке - PullRequest
0 голосов
/ 28 января 2020

Я в ситуации, которую я до сих пор не могу понять, как решить. У меня есть функция в Laravel контроллере, которая заканчивается сохранением, все идет хорошо, и я не получаю ошибок, но данные не go в БД.

Я уже сделал много тестов и все как и ожидалось, но данные не сохраняются.

Может ли кто-нибудь мне помочь?

Я искал много мест и не нашел ничего, что могло бы мне помочь, найти некоторые вещи об опечатке id, но это не мой случай.

Вот функция в контроллере:

public function saveCodeList(Request $request)
{
    try{
        \DB::beginTransaction();
        $input = $request->all();

        foreach ($input as $i){
            $pecaId = $this->TecmanutencaoPecaM
                ->where('peca', $i['peca'])
                ->select('id')
                ->first();

            if($pecaId){
                $codPeca = new TecManutencaoEstoqueCodPeca();
                $codPeca->idPeca = $pecaId->id;
                $codPeca->codigo = $i['codigo'];
                $codPeca->emEstoque = 's';

                if ($codPeca->save()) {
                    return response()->json('salvo', 200);
                } else {
                    return response()->json('Erro ao salvar');
                }
            }  elseif ($i['codigo'] !== null || $i !== '') {
                return response()->json('Sem códigos a adicionar', 200);
            }
        }

        \DB::commit();
    } catch (\Exception $e){
        \DB::rollback();
        return response()->json($e.'erro');
    }
}

Я использую Vue во внешнем интерфейсе.

Любая помощь будет наиболее ценной.

Заранее спасибо.

1 Ответ

1 голос
/ 28 января 2020

Вы фиксируете базу данных после того, как получили ответ, в результате чего вы фактически никогда не фиксируете транзакцию в базе данных. Это можно решить, убедившись, что вы передали транзакцию перед возвратом ответа json.

Например:

if ($codPeca->save()) {
    \DB::commit();
    return response()->json('salvo', 200);
} else {
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...