/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Ticket::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     $query->joinWith(['user']);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     //пользователь видит только свои заявки, админ видит все заявки
     if (!Yii::$app->user->identity->isAdmin()) {
         $query->andFilterWhere(['user_id' => $this->user_id]);
     }
     $query->andFilterWhere(['status' => $this->status, 'created_at' => $this->created_at]);
     $query->andFilterWhere(['like', 'theme', $this->theme]);
     $query->orderBy('updated_at DESC');
     return $dataProvider;
 }
Exemple #2
0
 public function getStatusName()
 {
     $statuses = Ticket::getStatuses();
     return $statuses[$this->status];
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTicket()
 {
     return $this->hasOne(Ticket::className(), ['id' => 'ticket_id']);
 }