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

543
Views
Laravel: ¿Actualizar un valor mantiene el valor como nulo?

En una página de vista en Laravel, estoy mostrando información pero también tengo un formulario en la parte inferior de la vista donde los usuarios pueden dejar un 'comentario'. En la tabla de la base de datos, el campo para comentarios se establece inicialmente como 'nulo' y luego, si los usuarios deciden enviar un comentario, se actualizará el campo.

El código se ejecuta, sin embargo, no parece funcionar, ya que cuando verifico la base de datos, ¿el valor sigue siendo nulo?

Controlador (función de actualización ):

 public function update(Request $request, $MealPlan_ID) { $comments = $request->comments; $commentupdate = MealPlanInput::where('id', '=', $MealPlan_ID)->update(['comments' => $comments]); $data = MealPlanInput::where('id', '=', $MealPlan_ID)->get(); return view('MealPlanDisplay.modal', compact('data', 'MealPlan_ID'));

Controlador (la función mostrar , arrojó un error cuando no la tenía):

 public function show($MealPlan_ID) { $data = MealPlanInput::where('id', '=', $MealPlan_ID)->get(); return view('MealPlanDisplay.modal', compact('data','MealPlan_ID')); }

La vista con forma:

 <form method="put" action="{{ route('MealPlanDisplay.update', $MealPlan_ID) }}"> <div class="shadow overflow-hidden sm:rounded-md"> <div class="px-4 py-5 bg-white sm:p-6"> <label for="comments" class="block font-medium text-sm text-gray-700">Personal Comments about Meal Plan</label> <input type="text" name="comments" id="comments" type="text" class="form-input rounded-md shadow-sm mt-1 block w-full" value="{{ old('comments', '') }}" /> @error('comments') <p class="text-sm text-red-600">{{ $message }}</p> @enderror </div> <div class="flex items-center justify-end px-4 py-3 bg-gray-50 text-right sm:px-6"> <button class="inline-flex items-center px-4 py-2 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase"> Submit Comment </button>

Ruta:

 //the /view and then the relevant ID of the information being displayed Route::put('/MealPlanDisplay/modal/{MealPlan_ID}', [MealPlanDisplayController::class, 'update']);

Lo único que noté es que la URL cambiará después de enviar, por lo que cuando la URL normalmente es: /MealPlanDisplay/2

Si envío un comentario llamado 'Prueba', la URL cambia a: /MealPlanDisplay/2?comments=Test

Estoy confundido en cuanto a lo que estoy haciendo mal con la actualización (poner)? Apreciaría mucho alguna ayuda.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En aras de la comprensión, transfirí el comentario de @nice_dev a su código. También incluí la declaración @csrf que agrega el token csrf, generalmente lo desea en las solicitudes posteriores. (de lo contrario, podría obtener algunos errores)

 <form method="post" action="{{ route('MealPlanDisplay.update', $MealPlan_ID) }}"> @method('PUT') @csrf //.... the rest

¿Por qué necesita usar POST en lugar de PUT?
PUT no se reconoce como un método válido, por lo tanto, se envía una solicitud de obtención a su backend y se invoca el método de controlador incorrecto.

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!