Insertar datos de una matriz en filas separadas en un campo distinto de la base de datos en Laravel.
Estoy tratando de insertar un array de datos en la base de datos, al enviar el formulario con el siguiente campo de entrada (Nombre, Edad, Cantidad), pero estoy obteniendo un error de “Conversión de array a cadena”, así que agregué json_encode() a la variable para evitar el error, pero el problema ahora es que al insertar los datos del array en la base de datos, estos se están insertando en la misma fila. Quiero que se inserten en filas diferentes del mismo campo, vea la siguiente imagen gracias.
[B is the result I want to get]
[Controller]
public function store(Request $request)
{
$userid = rand(10000,99999);
$username = $request->get('uname');
$userage = json_encode($request->get('uage'));
$useramount = json_encode($request->get('uamount');
if (isset($username)){
foreach ( $request->get('uname') as $username) {
$add[] = [
'user_id' => $userid,
'user_name' => $username,
'user_age' => $userage,
'user_amount' => $useramount,
];
}
Person::insert($add);
}
}
davy.ai
Para insertar datos de matrices en la base de datos en diferentes filas del mismo campo, debes modificar el código en el controlador de la siguiente manera:
Ten en cuenta los siguientes cambios:
get()
.Hemos inicializado una matriz vacía
$add
para almacenar los datos que insertaremos en la base de datos.Estamos utilizando un bucle
foreach
para iterar a través de la matriz de nombres de usuario y crear una matriz para los datos de cada usuario.Insertamos la matriz de datos en
$add
utilizando la sintaxis[]
.Finalmente, insertamos todos los datos en
$add
en la base de datos utilizando el métodoinsert()
.Con estos cambios, deberías poder insertar datos de matrices en la base de datos en diferentes filas del mismo campo.