| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace app\models\user\search;
- use dektrium\user\models\UserSearch as BaseUserSearch;
- use Yii;
- use yii\data\ActiveDataProvider;
- class Users extends BaseUserSearch
- {
- /** @var integer */
- public $uuid;
- public $fio;
- public $cname;
- public $phone;
- public function rules()
- {
- return [
- 'fieldsSafe' => [['id', 'uuid', 'fio', 'cname', 'phone', 'email', 'registration_ip', 'created_at', 'last_login_at'], 'safe'],
- 'createdDefault' => ['created_at', 'default', 'value' => null],
- 'lastloginDefault' => ['last_login_at', 'default', 'value' => null],
- ];
- }
- /** @inheritdoc */
- public function attributeLabels()
- {
- return [
- 'id' => Yii::t('user', '#'),
- 'uuid' => Yii::t('user', 'Nomer Dogovora'),
- 'username' => Yii::t('user', 'Username'),
- 'email' => Yii::t('user', 'Email'),
- 'created_at' => Yii::t('user', 'Registration time'),
- 'last_login_at' => Yii::t('user', 'Last login'),
- 'registration_ip' => Yii::t('user', 'Registration ip'),
- ];
- }
- /**
- * @param $params
- *
- * @return ActiveDataProvider
- */
- public function search($params)
- {
- $query = $this->finder->getUserQuery();
- $dataProvider = new ActiveDataProvider([
- 'query' => $query,
- 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]],
- ]);
- if (!($this->load($params) && $this->validate())) {
- return $dataProvider;
- }
- $modelClass = $query->modelClass;
- $table_name = $modelClass::tableName();
- if ($this->created_at !== null) {
- $date = strtotime($this->created_at);
- $query->andFilterWhere(['between', $table_name . '.created_at', $date, $date + 3600 * 24]);
- }
- $query->andFilterWhere(['like', $table_name . '.username', $this->username])
- ->andFilterWhere(['like', $table_name . '.phone', $this->phone])
- ->andFilterWhere(['like', $table_name . '.email', $this->email])
- ->andFilterWhere(['like', $table_name . '.fio', $this->fio])
- ->andFilterWhere(['like', $table_name . '.cname', $this->cname])
- ->andFilterWhere([$table_name . '.id' => $this->id])
- ->andFilterWhere([$table_name . '.uuid' => $this->uuid])
- ->andFilterWhere([$table_name . 'registration_ip' => $this->registration_ip]);
- return $dataProvider;
- }
- }
|