first upload all files

This commit is contained in:
NW
2023-06-11 13:14:03 +01:00
parent f14dbc52b5
commit c08b36d1b6
1705 changed files with 106852 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
<?php
namespace Modules\Attribute\Listeners;
use Modules\Product\Entities\Product;
use Modules\Attribute\Entities\ProductAttributeValue;
class SaveProductAttributes
{
/**
* Handle the event.
*
* @param \Modules\Product\Entities\Product $product
* @return void
*/
public function handle(Product $product)
{
$this->deleteProductAttributes($product);
$this->createProductAttributes($product);
}
/**
* Delete all product attributes associated with the given product.
*
* @param \Modules\Product\Entities\Product $product
* @return void
*/
private function deleteProductAttributes(Product $product)
{
$product->attributes()->delete();
}
/**
* Create product attributes for the given product.
*
* @param \Modules\Product\Entities\Product $product
* @return void
*/
private function createProductAttributes(Product $product)
{
$productAttributeValues = [];
foreach (request('attributes', []) as $attribute) {
$productAttribute = $product->attributes()->create([
'attribute_id' => $attribute['attribute_id'],
]);
foreach ($attribute['values'] as $valueId) {
$productAttributeValues[] = [
'product_attribute_id' => $productAttribute->id,
'attribute_value_id' => $valueId,
];
}
}
$this->createProductAttributeValues($productAttributeValues);
}
/**
* Create the given product attribute values.
*
* @param array $productAttributeValues
* @return void
*/
private function createProductAttributeValues(array $productAttributeValues)
{
ProductAttributeValue::insert($productAttributeValues);
}
}