Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

771
Vistas
Laravel por qué el registro no se actualiza usando vuejs

Estoy tratando de actualizar el texto cuando envío una solicitud al controlador de Laravel, pero recibo un error:

 500 internal server error Uncaught (in promise) Error: Request failed with status code 500

console.log muestra texto y valores que estoy tratando de enviar al controlador:

 id:16 text:aa

código vuejs:

 const onEdit=(todo)=>{ // var src = evt.target.innerHTML // this.txt = src axios .put('http://127.0.0.1:8000/api/todo/update', { id:todo.id, text:todo.text }) .then(() => getTodos()); console.log("working", todo.text, todo.id); };

Controlador Laravel:

 public function updateData(Request $request) { $todo = Todo::find($request->id); $todo->update($request->all()); return response()->json([ 'message' => 'updated' ]); }

Ruta:

 Route::put('todo/update',[TodoController::class,'updateData']);

Modelo:

 <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Todo extends Model { use HasFactory; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = ['id']; }

ingrese la descripción de la imagen aquí

ACTUALIZAR:

Revisé el registro de laravel y obtuve el error:

 Add [id] to fillable property to allow mass assignment on [App\Models\Todo].

Luego agregué id en el modelo. ahora veo la respuesta a continuación en el registro de la consola, pero no está actualizando los datos.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Un error 500 es un error genérico del lado del servidor.

En primer lugar, edite su función onEdit para agregar una catch para que pueda consolar el registro del error del servidor.

 const onEdit = (todo) => { axios.put('http://127.0.0.1:8000/api/todo/update', { id: todo.id, text: todo.text }).then(response => { console.log(response) getTodos() }).catch(error => { console.log(error) }) };

Una vez que sepa cuál es el error del servidor, sabrá qué corregir.

over 4 years ago · Santiago Trujillo Denunciar

0

El problema es con Todo Model, donde permitió que el campo de id se pudiera completar. Dado que la identificación es un incremento automático archivado en la base de datos, el campo de texto debe ser rellenable.

 protected $fillable = ['id'];

así que aquí tiene dos opciones. Una es permitir que la propiedad $fillable se pueda rellenar en el campo de text o proteger la propiedad de identificación para que todas las demás propiedades se puedan rellenar.

Asi que

 protected $guarded=['id'];

o

 protected $fillable=['text'];
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda