#php #database #laravel
#php #База данных #laravel
Вопрос:
у меня есть конструктор запросов для отображения ‘total’, вот код, как вставить total в мою базу данных inputs по id? **
$total =DB::table('prices as a')
-&&t;join('inputs as b', function ($join){
$join-&&t;on('a.cate&ory_id', '=','b.cate&ory_id');
})
-&&t;select(DB::raw('(a.price*b.wei&ht)as total'))
-&&t;&et()
dd($total) is
#items: array:3 [▼
0 =&&t; {#1248 ▼
"total": 2000.0
}
1 =&&t; {#1252 ▼
"total": 600.0
}
2 =&&t; {#1247 ▼
"total": 200.0
}
]
}
**
DB::table('inputs')-&&t;insert([
'total'=&&t;$total,
]);
its my store controller
foreach($cate&ory as $key =&&t; $no)
{
$$module_name_sin&ular = $module_model::create([
'cate&ory_id'=&&t;$cate&ory[$key],
'user_id'=&&t; $user,
// dd($cate&ory[$key]),
// 'total' =&&t;$total[$key],
// dd($total[$key]),
// dd($user),
'wei&ht'=&&t; $wei&ht[$key],
// dd($wei&ht[$key]),
// 'total' =&&t; 6,
'created_by_name' =&&t; auth()-&&t;user()-&&t;name
]);
}
спасибо, my inputs db введите описание изображения здесь
и общее количество ошибок введите описание изображения здесь
Ответ №1:
Если вы просто хотите, чтобы идентификаторы присутствовали в результате запроса, добавьте их в свой select.
select(DB::raw('(a.price * b.wei&ht) as total, a.id as a_id, b.id as b_id'))
Затем выполните итерацию по результату вашего массива и сделайте запросы специфичными для ваших нужд.
Если вы просто хотите обновить базу данных, используя результат вашего запроса, не используя его, вы можете рассмотреть возможность использования запроса на обновление вместо того, чтобы просто выбирать это из базы данных.
Также я рекомендую использовать модели eloquent, запрашивать простые данные, а затем вычислять их на PHP и обновлять ваши объекты после вычислений.