Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

551
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda