コード例 #1
0
 public function run()
 {
     $data = null;
     $cart = $this->getModule()->getCart();
     $request = Yii::$app->request;
     $model = new $this->productClass();
     $collection = new Collection();
     $collection->setModel($model);
     if ($this->bulkLoad) {
         $data = [];
         $selection = $request->post('selection');
         foreach ($selection as $id) {
             $data[$id] = [reset($model->primaryKey()) => $id];
         }
     } else {
         $data = [$request->post() ?: $request->get()];
     }
     if ($collection->load($data) && $collection->validate()) {
         foreach ($collection->models as $position) {
             if (!$cart->hasPosition($position->getId())) {
                 $cart->put($position);
                 Yii::$app->session->addFlash('success', Yii::t('cart', 'Item has been added to cart'));
             } else {
                 Yii::$app->session->addFlash('warning', Yii::t('cart', 'Item is in the cart already'));
             }
         }
     } else {
         Yii::$app->session->addFlash('warning', Yii::t('cart', 'Item does not exists'));
     }
     if ($request->isAjax) {
         Yii::$app->end();
     } else {
         return $this->controller->redirect($request->referrer);
     }
 }