Laravel состояние половины транзакции db - PullRequest
1 голос
/ 05 августа 2020

Привет, я обнаружил ошибку в своем приложении laravel и задаюсь вопросом, как ее исправить: /

Код моих контроллеров

public function patvirtinimas($id,$bookid)
{
    return \View::make('grazintiknyga.patvirtinti',compact('id','bookid'));
}
public function grazintiknygasave($id,$bookid,Request $request)
{

    if(Input::get('taip'))
    {   
        $grazinimas = Carbon::now();
        $grazinimas->format("Y-m-d");
        $kasprieme = Auth::user()->id;
        $resetas = NULL;
        //dd($kasprieme);

        DB::beginTransaction();

        try {
            DB::table('borrows')
            ->where('id', $id)
            ->update(['grazinimo_data' => $grazinimas,
                      'prieme' => $kasprieme
            ]);
            DB::table('books')
            ->where('id', $bookid)
            ->update(['isdavimo_data' => $resetas,
                  'terminas' => $resetas,
                  'grazinimo_data' => $resetas 
            ]);

        DB::commit();
        // jeigu viskas gerai
        } catch (\Exception $e) {
        DB::rollback();
        dd($e);
        // jeigu kazkas negerai
        }

        return \Redirect::to(url('grazinti-knyga'))->with('grazinta','Knyga grąžinta sėkmingai!');
    }
    elseif(Input::get('ne'))
    {
        return \Redirect::to(url('grazinti-knyga'))->with('negrazinta','Knygos grąžinimas atšauktas!');
    }
}

Одна функция для просмотра другой для обновления таблиц в БД

routes

Route::get('patvirtinti-grazinima-{id}-{bookid}', 'BorrowController@patvirtinimas');
Route::post('grazinimas-save-{id}-{bookid}', 'BorrowController@grazintiknygasave');

Проблема в том, что я редактирую маршрут прямо в браузере grazinimas-save- {someid} - {somebookid}

Когда один из параметров соответствует другому dont тогда половина транзакции db работает, а другая не обновляет и не уничтожает мой db:? может кто-нибудь помочь исправить эти ошибки? что оба параметра должны совпадать в db для обновления. Может быть, есть какие-то параметры скрытия и валидации?

1 Ответ

1 голос
/ 06 августа 2020

Косая черта / - это ожидаемый способ разделения аргументов в ваших маршрутах. Ваши параметры не передаются должным образом на ваш контроллер.

Изменяет маршруты на следующие (если можете)

Route::get('patvirtinti-grazinima/{id}/{bookid}', 'BorrowController@patvirtinimas');
Route::post('grazinimas-save/{id}/{bookid}', 'BorrowController@grazintiknygasave');

Другой вариант - обработать logi c в вашем Контроллер или промежуточное ПО (https://laracasts.com/discuss/channels/laravel/using-dash-instead-of-slash-in-routes)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...