You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

61 lines
1.5 KiB

<?php
/**
* Created by Error202
* Date: 22.08.2018
*/
namespace common\modules\banners\controllers;
use common\modules\banners\entities\Banner;
use common\modules\banners\services\BannerManageService;
use frontend\components\FrontendController;
use Yii;
use yii\web\NotFoundHttpException;
class BannerController extends FrontendController
{
private BannerManageService $service;
public function __construct(string $id, $module, BannerManageService $service, array $config = [])
{
parent::__construct($id, $module, $config);
$this->service = $service;
}
/**
* @throws NotFoundHttpException
*/
public function actionView()
{
$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
if (Yii::$app->request->isAjax && $id) {
$banner = $this->findModel($id);
$this->service->addView($banner);
}
}
/**
* @throws NotFoundHttpException
*/
public function actionClick()
{
$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
if (Yii::$app->request->isAjax && $id) {
$banner = $this->findModel($id);
$this->service->addClick($banner);
}
}
/**
* @param $id
* @return Banner
* @throws NotFoundHttpException
*/
protected function findModel($id): Banner
{
if (($model = Banner::findOne($id)) !== null) {
return $model;
}
throw new NotFoundHttpException('The requested banner does not exist.');
}
}