NotificationController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\controllers;
  3. use app\models\Bidding;
  4. use Yii;
  5. use app\models\Notification;
  6. use yii\rest\ActiveController;
  7. use yii\data\ActiveDataProvider;
  8. class NotificationController extends ActiveController
  9. {
  10. public $modelClass = 'app\models\Notification';
  11. public function actions()
  12. {
  13. return [
  14. 'view' => [
  15. 'class' => 'yii\rest\ViewAction',
  16. 'modelClass' => $this->modelClass,
  17. 'checkAccess' => [$this, 'checkAccess'],
  18. ],
  19. 'create' => [
  20. //'class' => 'yii\rest\CreateAction',
  21. 'modelClass' => $this->modelClass,
  22. 'checkAccess' => [$this, 'checkAccess'],
  23. 'scenario' => $this->createScenario,
  24. ],
  25. 'update' => [
  26. //'class' => 'yii\rest\UpdateAction',
  27. 'class' => 'app\controllers\UpdateAction',
  28. 'modelClass' => $this->modelClass,
  29. 'checkAccess' => [$this, 'checkAccess'],
  30. 'scenario' => $this->updateScenario,
  31. ],
  32. 'delete' => [
  33. //'class' => 'yii\rest\DeleteAction',
  34. 'modelClass' => $this->modelClass,
  35. 'checkAccess' => [$this, 'checkAccess'],
  36. ],
  37. 'options' => [
  38. 'class' => 'yii\rest\OptionsAction',
  39. ],
  40. ];
  41. }
  42. public function checkAccess($action, $model = null, $params = [])
  43. {
  44. // check if the user can access $action and $model
  45. // throw ForbiddenHttpException if access should be denied
  46. }
  47. public function actionIndex(){
  48. return [
  49. 'count_messages' => Notification::find()->where(['user_id' => Yii::$app->user->id, 'status' => 0])->count(),
  50. 'count_bids' => Bidding::find()->where([(Yii::$app->user->can('member') ? 'user_id' : 'org_id') => Yii::$app->user->id, 'readed' => 0])->count(),
  51. ];
  52. }
  53. }