<form class="search-block clearfix" id="filter" method="get">
<fieldset class="search-column">
<legend>Инфраструктура:</legend>
<ul class="type-checkbox">
<li>
<input type="checkbox" name="swimmingpool" id="swimmingpool-field" checked>
<label for="swimmingpool-field">Бассейн</label>
</li>
<li>
<input type="checkbox" name="parking" id="parking-field">
<label for="parking-field">Парковка</label>
</li>
<li class="type-checkbox">
<input type="checkbox" name="wifi" id="wifi-field">
<label for="wifi-field">Wi-fi</label>
</li>
</ul>
</fieldset>
<fieldset class="search-column">
<legend>Тип жилья:</legend>
<ul class="type-checkbox">
<li>
<input type="checkbox" name="hotel" id="hotel-field" checked>
<label for="hotel-field">Гостиница</label>
</li>
<li>
<input type="checkbox" name="motel" id="motel-field" checked>
<label for="motel-field">Мотель</label>
</li>
<li>
<input type="checkbox" name="apart" id="apart-field" checked>
<label for="apart-field">Аппартаменты</label>
</li>
</ul>
</fieldset>
<div class="search-column-range">
<div class="range-title">Стоимость в сутки(Р):</div>
<div class="price-filter">
<div class="min-price">
<input type="text" name="start-price" id="start-price-field">
<label for="start-price-field">от 0</label>
</div>
<div class="max-price">
<input type="text" name="final-price" id="final-price-field">
<label for="final-price-field">до 3000</label>
</div>
</div>
<button class="show-hotels" type="submit">Показать</button>
</div>
</form>
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\Article;
/**
* ArticleSearch represents the model behind the search form about `app\models\Article`.
*/
class HotelSearch extends Article
{
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id', 'user_id'], 'integer'],
[['hotelname', 'type', 'min_price', 'image'], 'safe'],
];
}
/**
* @inheritdoc
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params)
{
// $query = Article::find()->where([
// 'type' => $this->type,
// 'swimmingpool' => $this->swimmingpool,
// 'parking' => $this->parking,
// 'wifi' => $this->wifi,
// ]);
$query = Article::find();
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 5,
],
]);
$this->load($params);
if (!$this->validate()) {
// uncomment the following line if you do not want to return any records when validation fails
// $query->where('0=1');
return $dataProvider;
}
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'user_id' => $this->user_id,
]);
$query->andFilterWhere(['like', 'hotelname', $this->hotelname])
->andFilterWhere(['like', 'type', $this->type])
->andFilterWhere(['like', 'min_price', $this->min_price])
->andFilterWhere(['like', 'image', $this->image])
->andFilterWhere(['like', 'swimmingpool', $this->swimmingpool])
->andFilterWhere(['like', 'parking', $this->parking])
->andFilterWhere(['like', 'wifi', $this->wifi]);
return $dataProvider;
}
}