laravel проверяет, есть ли в обновлении какие-то изменения, используя построитель запросов

Как я могу узнать об обновленных изменениях с помощью построителя запросов в моем коде приложения laravel, приведено ниже: обновление общедоступной функции (Request $ request, Announcement $ announcement) {

     $announcement_update = DB::table('announcement')
        ->where('id', $request->announcement_id)
        ->update($announcement_data);

    if($announcement_update){
        return redirect('announcement')->with('success','Announcement updated               successfully');
    }
    elseif(need conditionfor this){
        return redirect('editAnnouncement/'.encrypt($request->announcement_id))
        ->with('error','NO changes have been made in the form fields');
    }
    else{
        return redirect('editAnnouncement/'.encrypt($request->announcement_id))
        ->with('error','There seems some error in updating announcement. Please try again');
    }
}

person vikalp    schedule 21.02.2018    source источник
comment
Пожалуйста, переформатируйте код.   -  person lolbas    schedule 21.02.2018
comment
Объясните, в чем ваша проблема! Посмотрите Как создать минимальный, полный и проверяемый пример   -  person Yulio Aleman Jimenez    schedule 21.02.2018
comment
@YulioAlemanJimenez при обновлении данных в таблице возвращает 0 в случае неудачи и 1 в случае успеха. Я просто хочу узнать, есть ли какие-либо изменения в полях сообщений / форм, потому что в этом случае он возвращает только 0 и показывает ошибку, что данные не обновлены.   -  person vikalp    schedule 21.02.2018


Ответы (2)


Запрос Обновить вернет количество затронутых строк. вы можете поймать исключение или ошибку запроса с помощью исключения \Illuminate\Database\QueryException.

try {
    $announcement_update = DB::table('announcement')
        ->where('id', $request->announcement_id)
        ->update($announcement_data);

    if($announcement_update > 0){
        return redirect('announcement')->with('success','Announcement updated               successfully');
    }
    else
    {
        return redirect('editAnnouncement/'.encrypt($request->announcement_id))
        ->with('error','NO changes have been made in the form fields');
    }

} catch (\Illuminate\Database\QueryException $ex) {
    return redirect('editAnnouncement/'.encrypt($request->announcement_id))
    ->with('error','There seems some error in updating announcement. Please try again');
}
person Luis felipe De jesus Munoz    schedule 21.02.2018

вы можете написать событие и запустить его при обновлении, а также сохранить изменения

person Hamid Vetr    schedule 21.02.2018