Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

766
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!