Sé que hay muchas respuestas sobre esta pregunta, pero ninguna de ellas realmente me ayudó.
// update name Route::put('/profile/update', function(Request $request){ $name = $request->input('name'); try{ echo DB::table('users')->where('id',Auth::id())->update(['name' => $name]); } catch(\Exception $e){ // do task when error echo $e->get_message(); } });También probé el método de eliminación, pero tampoco funciona. ¿Puedes averiguar qué está pasando? Gracias.
Laravel usa principalmente camelCase para la nomenclatura, así que use:
catch(\Exception $e){ // do task when error echo $e->getMessage(); } Si no, simplemente descargue $e completo para verlo:
catch(\Exception $e){ // do task when error dd($e); }La nomenclatura snake_case solo se usa para nombres de tablas en Laravel.
en mi caso, debo usar \Throwable en lugar de \Exception
try { //code } catch (\Throwable $e) { dd($e); }a partir de su código, parece que el código nunca golpeará el botón, lo que en realidad no tiene nada que ver con laravel. su problema es SQL .
está intentando actualizar un registro y actualizar una fila que no existe nunca fallará en SQL. por lo tanto, sugiero manejar el caso manualmente verificando el valor del resultado y reemplazando el intento y la captura con si no
Por cierto, @Learner tiene 100% razón sobre get_message() , no está en laravel, ya que sé que lo reemplazará en el futuro con getMessage()