public function actionCreate() { $model = new Product(); if ($model->load(\Yii::$app->request->post())) { if ($model->validate() && $model->save()) { return $this->redirect(['index']); } } return $this->render('form', ['model' => $model]); }
/** * Creates a new Product model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Product(); $model_category = new Category(); $model_product_category = new ProductCategory(); $model_manufacturer = new Manufacturer(); $model_product_manufacturer = new ProductManufacturer(); $upload_model = new UploadForm(); $resource = new Resources(); $resource_product = new ResourcesProduct(); if (isset($_POST['Product']) && !empty($_POST['Product'])) { $model->attributes = $_POST['Product']; $model->beforeSave(TRUE); if ($model->validate() && $model->save()) { if (empty($_POST['ProductCategory']['category_id'])) { $model_product_category->addError('category_id', 'No category selected.'); } else { foreach ($_POST['ProductCategory']['category_id'] as $category) { $model_product_category = new ProductCategory(); $model_product_category->product_id = $model->id; $model_product_category->category_id = $category; $model_product_category->save(); } } if (isset($_POST['ProductManufacturer']) && !empty($_POST['ProductManufacturer']['manufacturer_id'])) { $model_product_manufacturer->attributes = $_POST['ProductManufacturer']; $model_product_manufacturer->product_id = $model->id; $model_product_manufacturer->save(); } $upload_model->imageFiles = UploadedFile::getInstances($upload_model, 'imageFiles'); $uploaded_files = $upload_model->upload('product_image'); if (!empty($uploaded_files)) { foreach ($uploaded_files as $uploaded_file) { $resource = new Resources(); $resource->attributes = $uploaded_file; $resource->beforeSave(TRUE); if ($resource->validate() && $resource->save()) { $resource_product = new ResourcesProduct(); $resource_product->product_id = $model->id; $resource_product->resources_id = $resource->id; $resource_product->save(); } } } return $this->redirect(['view', 'id' => $model->id]); } } else { return $this->render('create', ['model' => $model, 'model_manufacturer' => $model_manufacturer, 'model_product_manufacturer' => $model_product_manufacturer, 'model_category' => $model_category, 'model_product_category' => $model_product_category, 'upload_model' => $upload_model]); } }
private function _getProductData($url) { $url = trim($url); if (strlen($url) > 0 && !$this->is_404($url)) { $product_model = new Product(); $product_info = ['category_id' => '', 'name' => '', 'description' => '', 'size' => '', 'price' => 0.0, 'details' => '', 'original_url' => '', 'created_ts' => time()]; $category = Yii::$app->request->post('category'); if (!empty($category)) { $product_info['category_id'] = $category; } $imgdir = Yii::getAlias('@uploadPath') . '/products/'; $html = file_get_html($url); $product_info['original_url'] = $url; $product_name = $html->find('h1.top_title', 0); // Get Product name if (isset($product_name->innertext) && !empty($product_name->innertext)) { //Only save product if it has name $product_info['name'] = $product_name->innertext; $img = $html->find('img.lg_view', 0); //Get Product image $src = 'http:' . $img->src; $file_name = urldecode(end(explode('/', $img->src))); if (isset($img->src) && @copy($src, $imgdir . $file_name)) { $product_info['image'] = $file_name; } $price = $html->find('span.priceshow', 0); //Get Product size if (isset($price->innertext)) { $product_price = end(explode('$', $price->innertext)); $product_info['price'] = $product_price; } $description = $html->find('div.explain p', 1); //Get Product description if (isset($description->innertext)) { $product_info['description'] = trim($description->innertext); } $product_model->attributes = $product_info; if ($product_model->validate()) { if ($product_model->save()) { //return $this->redirect(['products/view/' . $product_model->id]); //return $this->refresh(); } else { Yii::$app->session->setFlash('saveErr', 'An error occurred. Please try again!'); } } else { Yii::$app->session->setFlash('saveErr', 'An error occurred. Please try again!'); } } } }