AuctionController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NeiroN
  5. * Date: 11.10.2015
  6. * Time: 12:08
  7. */
  8. namespace app\controllers;
  9. use Yii;
  10. use app\models\Auctions;
  11. use yii\rest\ActiveController;
  12. use yii\data\ActiveDataProvider;
  13. use yii\filters\AccessControl;
  14. class AuctionController extends ActiveController
  15. {
  16. public $modelClass = 'app\models\Auctions';
  17. public function actions()
  18. {
  19. return [
  20. 'index' => [
  21. 'class' => 'yii\rest\IndexAction',
  22. 'modelClass' => $this->modelClass,
  23. 'checkAccess' => [$this, 'checkAccess'],
  24. 'prepareDataProvider' => function ($action)
  25. {
  26. if(Yii::$app->request->get()) { $auc_id = $_GET['id']; }
  27. if(isset($auc_id)) {
  28. return new ActiveDataProvider(
  29. [
  30. 'query' => Auctions::find()->where(['id' => $auc_id]),
  31. ]);
  32. } else {
  33. return new ActiveDataProvider(
  34. [
  35. 'query' => Auctions::find(),
  36. ]);
  37. }
  38. }
  39. ],
  40. 'view' => [
  41. 'class' => 'yii\rest\ViewAction',
  42. 'modelClass' => $this->modelClass,
  43. 'checkAccess' => [$this, 'checkAccess'],
  44. ],
  45. 'create' => [
  46. 'class' => 'yii\rest\CreateAction',
  47. 'modelClass' => $this->modelClass,
  48. 'checkAccess' => [$this, 'checkAccess'],
  49. 'scenario' => $this->createScenario,
  50. ],
  51. 'update' => [
  52. //'class' => 'yii\rest\UpdateAction',
  53. 'class' => 'app\controllers\UpdateAction',
  54. 'modelClass' => $this->modelClass,
  55. 'checkAccess' => [$this, 'checkAccess'],
  56. 'scenario' => $this->updateScenario,
  57. ],
  58. 'delete' => [
  59. 'class' => 'yii\rest\DeleteAction',
  60. 'modelClass' => $this->modelClass,
  61. 'checkAccess' => [$this, 'checkAccess'],
  62. ],
  63. 'options' => [
  64. 'class' => 'yii\rest\OptionsAction',
  65. ],
  66. ];
  67. }
  68. public function checkAccess($action, $model = null, $params = [])
  69. {
  70. // check if the user can access $action and $model
  71. // throw ForbiddenHttpException if access should be denied
  72. }
  73. }