/** * Creates a new Card model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Card(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Card generator * @return mixed */ public function actionGenerator() { $model = new Card(); if ($model->load(Yii::$app->request->post())) { //Получаем данные для генреации из post $qty = Yii::$app->getRequest()->post('qty'); $expires = ArrayHelper::getValue(Yii::$app->request->post(), 'Card.expires_date'); $serial = ArrayHelper::getValue(Yii::$app->request->post(), 'Card.serial'); //делаем bullk insert for ($i = 1; $i <= $qty; $i++) { Yii::$app->db->createCommand()->batchInsert('card', ['serial', 'expires_date'], [[$serial, $expires]])->execute(); } return $this->redirect(['index', 'id' => $model->number]); } else { return $this->render('generator', ['model' => $model]); } }
public function actionGen() { $card = new Card(); $new = true; $post = Yii::$app->request->post(); if (!empty($post)) { $new = false; } $card->load($post); $count = $card->count; $param = ['model' => $card, 'cnt' => $count, 'message' => "Готово. <a href='/card'>Перейти к списку.</a>", 'opstatus' => 'success', 'new' => $new]; if ($count <= 1000000) { $c = $count; $card->sum = 0; $card->status = 0; $cdate = date('Y-m-d H:i:s'); // $cdate = Yii::$app->formatter->asDatetime(new \DateTime(), 'php:d-M-Y H:i:s'); $card->creation_date = $cdate; if ($card->validate()) { while ($c-- > 0) { $newcard = new Card($card); $newcard->count = 1; $newcard->sum = rand(1, 10000); $newcard->save(); } } else { $param['message'] = 'Ошибка проверки модели'; $param['opstatus'] = 'danger'; } } else { $param['message'] = 'Слишком большое число карточек > 1000000. Тут нужно использовать менеджер очереди. (например rabbitmq)'; $param['opstatus'] = 'danger'; } return $this->render('generator', $param); }