public saveProductAttribute ( $product, |
||
$request |
public function saveProductAttribute($product, ProductRequest $request)
{
$productAttributes = ProductAttribute::all();
foreach ($productAttributes as $productAttribute) {
$identifier = $productAttribute->identifier;
if (null == $request->get($identifier)) {
continue;
}
if ($product->{$identifier} == $request->get($identifier)) {
continue;
}
switch ($productAttribute->type) {
case 'VARCHAR':
$value = $request->get($identifier);
$this->_saveProductVarcharValue($product, $identifier, $productAttribute, $value);
break;
case 'INTEGER':
$value = $request->get($identifier);
$this->_saveProductIntegerValue($product, $identifier, $productAttribute, $value);
break;
case 'FLOAT':
$value = $request->get($identifier);
$this->_saveProductFloatValue($product, $identifier, $productAttribute, $value);
break;
case 'DATETIME':
$value = $request->get($identifier);
$this->_saveProductDatetimeValue($product, $identifier, $productAttribute, $value);
break;
case 'TEXT':
$value = $request->get($identifier);
$this->_saveProductTextValue($product, $identifier, $productAttribute, $value);
break;
default:
break;
}
}
return true;
}
/** * Update the specified resource in storage. * * @param \\App\Http\Requests\ProductRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function update(ProductRequest $request, $id) { try { $product = Product::findorfail($id); $this->productHelper->saveProduct($product, $request); $this->productHelper->saveRelatedProducts($product, $request); $this->productHelper->saveCategory($product, $request); $this->productHelper->saveProductImages($product, $request); $this->productHelper->saveProductAttribute($product, $request); } catch (\Exception $e) { throw new \Exception('Error in Saving Product: ' . $e->getMessage()); } return redirect()->route('admin.product.index'); }