如何从Laravel中的完整数组中获取每一行中的元素?
How to get an element in each row from a complete array in Laravel?
我在数据库中插入一组元素,我试图为每一行获取一个元素,但我获取的是一行中的所有元素,并且数据库中的每一行都像这样重复
我想为列中的行获取一个元素。我正在使用此查询
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif')
->distinct()
->get();
foreach ($data as $val) {
DB::table('clientes_view')->insert(['resultado' => $data]);
我该如何解决?
因为您要插入 $data
而不是 $val
,
你可以获取所有$data
,然后一次插入它们,像这样:
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif AS resultado')
->distinct()
->get();
// If you are using Eloquent, you can just use ->toarray();
// For query builder, you need to change stdClass to array, so I use json_decode()
$data = json_decode(json_encode($data, true), true);
DB::table('clientes_view')->insert($data);
updateOrInsert
只支持一条记录,所以如果要使用这种方法:
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif AS resultado')
->distinct()
->get();
$data = json_decode(json_encode($data, true), true);
forEach($data as $val) {
DB::table('clientes_view')->updateOrInsert($val, $val);
}
我在数据库中插入一组元素,我试图为每一行获取一个元素,但我获取的是一行中的所有元素,并且数据库中的每一行都像这样重复
我想为列中的行获取一个元素。我正在使用此查询
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif')
->distinct()
->get();
foreach ($data as $val) {
DB::table('clientes_view')->insert(['resultado' => $data]);
我该如何解决?
因为您要插入 $data
而不是 $val
,
你可以获取所有$data
,然后一次插入它们,像这样:
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif AS resultado')
->distinct()
->get();
// If you are using Eloquent, you can just use ->toarray();
// For query builder, you need to change stdClass to array, so I use json_decode()
$data = json_decode(json_encode($data, true), true);
DB::table('clientes_view')->insert($data);
updateOrInsert
只支持一条记录,所以如果要使用这种方法:
$data = DB::table('incidencias')
->join('clientes_incid', 'clientes_incid.rif', '=', 'incidencias.rif')
->select('incidencias.rif AS resultado')
->distinct()
->get();
$data = json_decode(json_encode($data, true), true);
forEach($data as $val) {
DB::table('clientes_view')->updateOrInsert($val, $val);
}