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

171
Vistas
Se obtuvo una matriz vacía cuando se envía una matriz de Axios a la función Laravel

Estoy tratando de enviar una matriz multidimensional desde javascript a la función laravel y guardarla en la sesión

mi matriz JS se ve así:

 [ 1 => [ 2022-07-12 => [1, 2], [2, 3] 2022-07-13 => [2, 1], [3, 3] ], 2 => [ 2022-07-14 => [1, 2], [2, 3] 2022-07-16 => [2, 1], [3, 3] ], ]

tengo la matriz en javascript es correcta, la envío a la función laravel con axios así:

 Axios.post('/meal-plans/set-weeks-meals', weeksMeals).then((response) => { console.log(response.data) });

y en la función laravel quiero guardar esa matriz en sesión:

 public function setWeeksMeals(Request $request) { session()->put('weeks_meals', $request->weeksMeals); return response()->json(['status' => true, 'weeksMeals' => $request->weeksMeals], 200); }

lo obtuve en mi respuesta

 {status: true, weeksMeals: null}

y esta es mi ruta

 Route::post('set-weeks-meals', [Controllers\MealController::class, 'setWeeksMeals'])->name('meals.setWeeksMeals');

cuando consola.log(weeksMeals);

 Array(2) 1: Array(0) 2022-07-12: Array(1) 0: (2) ['1', '1'] length: 1 [[Prototype]]: Array(0) 2022-07-13: Array(1) 0: (2) ['2', '2'] length: 1 [[Prototype]]: Array(0) length: 0 [[Prototype]]: Array(0) length: 2 [[Prototype]]: Array(0)

y en la función laravel dd($request->input());

 array:2 [ 0 => null 1 => [] ]

y aquí cómo generé el WeeksMeals Array

 let weeksMeals = []; if (Array.isArray(weeksMeals[week])) { if (Array.isArray(weeksMeals[week][day])) { weeksMeals[week][day].push([meal.options[meal.selectedIndex].value, gram.options[gram.selectedIndex].value]); } else { weeksMeals[week][day] = []; weeksMeals[week][day].push([meal.options[meal.selectedIndex].value, gram.options[gram.selectedIndex].value]); } } else { weeksMeals[week] = []; weeksMeals[week][day] = []; weeksMeals[week][day].push([meal.options[meal.selectedIndex].value, gram.options[gram.selectedIndex].value]); }

¿Puedo saber cómo enviar esta matriz a la función laravel?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para que $request->weeksMeals funcione, debe enviar los datos de su llamada Axios weeksMeals como un índice de object :

 Axios.post('/meal-plans/set-weeks-meals', {'weeksMeals': weeksMeals}).then((response) => { console.log(response.data) });

Sin eso, estabas recibiendo JSON así:

 {'0': [...], '1': [...]}

Lo que significa que $request->weeksMeals es null . $request->input('0') y $request->input('1') funcionarían, o simplemente $request->input() . Una vez que se realiza el cambio en el lado de Axios , los datos que se envían son:

 {'weeksMeals': {'0' => [...], '1' => [...]}}

Y $request->weeksMeals funcionaría. No puedo hablar de que las matrices internas no se envíen correctamente, eso probablemente se solucione definiendo let weeksMeals = {} en lugar de let weeksMeals = [] , ya que los object aceptan claves no numéricas/secuenciales como '1', '2', '2020-01-01' , etc., mientras que las array no.

about 4 years ago · Juan Pablo Isaza 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