Mage2\Catalog\Helpers\ProductHelper::saveProductAttribute PHP Method

saveProductAttribute() public method

public saveProductAttribute ( $product, ProductRequest $request )
$request Mage2\Catalog\Requests\ProductRequest
    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;
    }

Usage Example

 /**
  * 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');
 }