/**
  * Creates a new SearchLog model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     //if(!Yii::$app->user->can('createYourAuth')) throw new ForbiddenHttpException(Yii::t('app', 'No Auth'));
     $model = new SearchLog();
     $model->loadDefaultValues();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
Esempio n. 2
0
 public function actionSearch()
 {
     $searchModel = new Search();
     $keyword = Yii::$app->request->get('keyword');
     if (empty($keyword)) {
         $this->goHome();
     }
     // 记录log
     $model = new SearchLog();
     $model->setAttributes(['user_id' => Yii::$app->user->isGuest ? '' : Yii::$app->user->identity->getId(), 'keyword' => $keyword, 'created_at' => time()]);
     $model->save();
     $dataProvider = $searchModel->search($keyword);
     return $this->render('search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
 }
Esempio n. 3
0
 public function actionSearch($keyword = null, $type = self::PRODUCT_SORT_CREATED_AT)
 {
     if ($type == self::PRODUCT_SORT_CREATED_AT) {
         $type = 'created_at';
     } elseif ($type == self::PRODUCT_SORT_SALES) {
         $type = 'sales';
     } else {
         throw new BadRequestHttpException('Type is not supported.');
     }
     if (trim($keyword)) {
         $keyword = trim($keyword);
         $searchLog = new SearchLog(['session_id' => Yii::$app->session->id, 'user_id' => Yii::$app->user->id, 'keyword' => $keyword, 'ip' => Yii::$app->request->userIP]);
         $searchLog->save();
         $query = Product::find()->where('name like "%' . $keyword . '%"');
     } else {
         $query = Product::find();
     }
     $query->orderBy(['sales' => SORT_DESC]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['defaultPageSize' => Yii::$app->params['defaultPageSizeProduct']], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]);
     return $this->render('search', ['products' => $dataProvider->getModels(), 'pagination' => $dataProvider->pagination]);
 }