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

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

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 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!