/** 
  * Private method that handles assinging
  * karma to a user
  * @param string $karma_name
  * @param int $user_id
  * @return bool
  */
 public function addKarma($karma_name, $user_id)
 {
     // First find the karma record
     $karma = Karma::findOne(['name' => $karma_name]);
     if ($karma) {
         KarmaUser::attachKarma($user_id, $karma->id);
         return true;
     } else {
         return false;
     }
 }
 public function search($params)
 {
     $query = Karma::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     // load the search form data and validate
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     // adjust the query by adding the filters
     $query->andFilterWhere(['id' => $this->id]);
     $query->andFilterWhere(['points' => $this->points]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description]);
     return $dataProvider;
 }
 /**
  * Deletes a karma record
  */
 public function actionDelete()
 {
     $id = (int) Yii::$app->request->get('id');
     $doit = (int) Yii::$app->request->get('doit');
     $karma = Karma::findOne(['id' => $id]);
     if ($karma == null) {
         throw new \yii\web\HttpException(404, "Karma record not found!");
     }
     if ($doit == 2) {
         $this->forcePostRequest();
         $karma->delete();
         return $this->redirect(Url::toRoute('index'));
     }
     return $this->render('delete', array('model' => $karma));
 }
 public function getKarma()
 {
     return $this->hasOne(Karma::className(), ['id' => 'karma_id']);
 }