| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- namespace app\models;
- use Yii;
- use yii\base\Model;
- use yii\data\ActiveDataProvider;
- use kartik\daterange\DateRangeBehavior;
- /**
- * FilesSearch represents the model behind the search form about `app\models\Files`.
- */
- class FilesSearch extends Files
- {
- public $createTimeRange;
- public $createTimeStart;
- public $createTimeEnd;
- public function behaviors()
- {
- return [
- [
- 'class' => DateRangeBehavior::className(),
- 'attribute' => 'createTimeRange',
- 'dateStartAttribute' => 'createTimeStart',
- 'dateEndAttribute' => 'createTimeEnd',
- ]
- ];
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [['id', 'user_id', 'auction_id', 'lot_id'], 'integer'],
- [['path', 'name'], 'safe'],
- [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'],
- ];
- }
- /**
- * @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 = Files::find();
- // add conditions that should always apply here
- $dataProvider = new ActiveDataProvider([
- 'query' => $query,
- ]);
- $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,
- 'auction_id' => $this->auction_id,
- 'lot_id' => $this->lot_id,
- ]);
- $query->andFilterWhere(['like', 'path', $this->path])
- ->andFilterWhere(['like', 'name', $this->name]);
- $query->andFilterWhere(['>=', 'createdAt', $this->createTimeStart])
- ->andFilterWhere(['<', 'createdAt', $this->createTimeEnd]);
- return $dataProvider;
- }
- }
|