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.

62 lines
1.3 KiB

6 years ago
<?php
namespace common\modules\banners\forms\search;
use common\modules\banners\entities\BannerPlace;
use yii\base\Model;
use yii\data\ActiveDataProvider;
class PlaceSearch extends Model
{
3 years ago
public ?int $id = null;
public ?string $title = null;
public ?int $width = null;
public ?int $height = null;
public ?int $active = null;
6 years ago
public function rules(): array
{
return [
[['id', 'active', 'width', 'height'], 'integer'],
[['title'], 'safe'],
];
}
/**
* @param array $params
*
6 years ago
* @return ActiveDataProvider
*/
public function search(array $params): ActiveDataProvider
{
$query = BannerPlace::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
6 years ago
'defaultOrder' => ['id' => SORT_DESC]
]
]);
$this->load($params);
if (!$this->validate()) {
$query->where('0=1');
6 years ago
return $dataProvider;
}
$query->andFilterWhere([
'id' => $this->id,
'active' => $this->active,
'width' => $this->width,
'height' => $this->height
6 years ago
]);
$query
->andFilterWhere(['like', 'title', $this->title]);
6 years ago
return $dataProvider;
}
}