Обновление идентификаторов вариантов материалов для вариантов продукта в Laravel: проблема с четким сопоставлениемPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Обновление идентификаторов вариантов материалов для вариантов продукта в Laravel: проблема с четким сопоставлением

Сообщение Anonymous »

Я работаю над приложением Laravel, в котором мне нужно обновить Material_variant_id для вариантов продукта на основе предоставленного списка материалов. У меня есть две таблицы:
test_product_variant: содержит варианты продукта с Product_id.
Столбцы: id, Product_id, ...
test_product_material_variant : Содержит варианты материала, связанные с вариантами продукта.
Столбцы: Product_variant_id, Material_id, Material_variant_id
Проблема:
Мне нужно обновить Material_variant_id в test_product_material_variant для того же Material_id но назначьте разные Material_variant_ids из массива материалов. Код, который я использую в настоящее время, просто обновляет один и тот же Material_variant_id для всех вариантов продукта вместо присвоения отдельных идентификаторов из массива материалов.

Код: Выделить всё

 $product_id = 1;
$productVariants = DB::table('test_product_variant')
->where('product_id', $product_id)
->get();
$materials = [
[
"material_id" => "20",
"material_variant_id" => "4",
],
[
"material_id" => "20",
"material_variant_id" => "8",
],
];
$materialIndex = 0;
foreach ($productVariants as $productVariant) {
$product_variant_id = $productVariant->id;
$material = $materials[$materialIndex % count($materials)];
$material_id = $material['material_id'];
$material_variant_id = $material['material_variant_id'];

DB::table('test_product_material_variant')
->where('product_variant_id', $product_variant_id)
->where('material_id', $material_id)
->update(['material_variant_id' => $material_variant_id]);

$materialIndex++; // increment the material index
}
У меня есть структура базы данных:
таблица test_product_variant имеет столбцы
id
product_id
test_product_material
product_id
material_id
material_variant_id
test_product_material_variant
product_variant_id
material_id
material_variant_id

Подробнее здесь: https://stackoverflow.com/questions/790 ... ct-mapping
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»