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

302
Vistas
Laravel Controller/Ajax no se guarda en mi base de datos

Parece que mi save(); en mis categorías no funciona según lo previsto a continuación. Primero mostraré los códigos necesarios:

el nombre de mi tabla es hms_bbr_category que también está conectado a mi .env localmente:

 DB_CONNECTION=pgsql DB_HOST=localhost DB_PORT=5432 DB_DATABASE=jhs DB_USERNAME=postgres DB_PASSWORD=pa55wor0

mi modelo: HmsBbrCategoría

clase HmsBbrCategoría extiende Modelo

 { protected $table = 'hms_bbr_category'; protected $fillable = [ "category_name", "category_description" ]; }

mi controlador: BBRCategoryConfigurationController

 class BBRCategoryConfigurationController extends Controller { public function index(){ return view('frontend.bbr-settings.bbr-category-configuration'); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'category_name'=>'required|max:191', 'category_description'=>'required|max:191', ]); if($validator->fails()) { return response()->json([ 'status'=>400, 'errors'=>$validator->messages(), ]); } else { $category = new HmsBbrCategory; $category->category_name = $request->input('category_name'); $category->category_description = $request->input('category_description'); $category->save(); return response()->json([ 'status'=>200, 'message'=>'Category Added!', ]); } }

Los campos ajax y modal.

 <div class="form-group"> <input type="text" class="form-control form-group w-100 category_name" placeholder="Category Name"> </div> <div class="form-group"> <textarea class="form-control w-100 category_description" placeholder="Category Description" cols="50" rows="10"></textarea> </div> <script> $(document).ready(function (){ $(document).on('click', '.add_category', function(e){ e.preventDefault(); var category_data = { 'category_name': $('.category_name').val(), 'category_description': $('.category_description').val(), } //token taken from laravel documentation $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); console.log(category_data); $.ajax({ type: "POST", url: "/clinical/bbr-category-configuration", data: "category_data", dataType: "json", success: function (response){ // console.log(response); if(response.status == 400) { $('#saveform_errList').html(""); $('#saveform_errList').addClass('alert alert-danger'); $.each(response.errors, function (key, err_values) { $('#saveform_errList').append('<li>'+err_values+'</li>'); }); } else { $('#saveform_errList').html(""); $('#success_message').addClass('alert alert-success'); $('#success_message').text(response.message); $.('#createCategory').modal('hide'); $.('#createCategory').find('input').val(""); console.log(category_data); } } }); }); }); </script>

mis rutas en web.php

 Route::get('/bbr-category-configuration', [BBRCategoryConfigurationController::class,'index']); Route::post('/bbr-category-configuration', [BBRCategoryConfigurationController::class,'store']);

Cosas a tener en cuenta:

mi corazonada es que mi función de tienda no se conecta correctamente en $category = new HmsBbrCategory; Sin embargo, he comprobado que el nombre de mi tabla y los campos tomados son los mismos, como se ve en $category->category_name = $request->input('category_name');

También probé en ajax con los valores simplemente agregando console.log(response) como se ve en la captura de pantalla, no puedo pasar mi validador para llegar a save() . No estoy seguro de cómo, pero no debería haber un error ya que mis campos de texto están llenos.

1

Puedo elaborar más si es necesario, estoy preguntando qué puedo cambiar para arreglar mi validación/guardado. Gracias por cualquier ayuda.

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

0

Como muestra el error, la validación está fallando (supongo que el valor está vacío) y está devolviendo el código que programó (400).

Supongo que es porque está usando una cadena en lugar de la variable en los data: "category_data",

actualice el código para enviar la variable en su lugar

 $.ajax({ type: "POST", url: "/clinical/bbr-category-configuration", data: category_data, //change here dataType: "json", success: function (response){ //...
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