pmtpenza

Untitled

Jun 21st, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. <?php
  2.  
  3. namespace api\controllers;
  4. use Yii;
  5. use yii\rest\Controller;
  6. use yii\filters\VerbFilter;
  7. use yii\filters\AccessControl;
  8. use yii\filters\ContentNegotiator;
  9. use yii\web\Response;
  10. use yii\filters\Cors;
  11. use yii\rest\ActiveController;
  12. use api\models\Zayvki;
  13. use yii\filters\auth\HttpBearerAuth;
  14. use common\models\User;
  15. use api\models\Users;
  16. use yii\helpers\Url;
  17. use backend\models\Order;
  18.  
  19. class ZayvkiController extends ActiveController
  20. {
  21. public $modelClass = 'api\models\Zayvki';
  22.  
  23. public function actions()
  24. {
  25. $actions = parent::actions();
  26.  
  27. unset($actions['create']);
  28.  
  29. return $actions;
  30. }
  31.  
  32. public function behaviors()
  33. {
  34. $behaviors['corsFilter'] = [
  35. 'class' => \yii\filters\Cors::className(),
  36. 'cors' => [
  37. 'Origin' => ['*'],
  38. 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
  39. 'Access-Control-Allow-Credentials' => false,
  40. ],
  41.  
  42. ];
  43. $behaviors['contentNegotiator'] = [
  44. 'class' => ContentNegotiator::className(),
  45. 'formats' => [
  46. 'application/json' => Response::FORMAT_JSON
  47. ]
  48.  
  49. ];
  50. unset($behaviors['authenticator']);
  51. $behaviors['authenticator'] = [
  52. 'class' => HttpBearerAuth::className(),
  53. ];
  54.  
  55. $behaviors['access'] = [
  56. 'class' => AccessControl::className(),
  57. 'rules' => [
  58. [
  59. 'allow' => true,
  60. 'roles' => ['@'],
  61. ],
  62. ],
  63. ];
  64.  
  65. return $behaviors;
  66. }
  67.  
  68. public function actionCreate()
  69. {
  70. $params = \yii\helpers\Json::decode(Yii::$app->getRequest()->getRawBody());
  71.  
  72. $model = new Zayvki();
  73. $model->attributes = $params;
  74. $model->user_id = Yii::$app->user-id;
  75.  
  76. if ($model->validate() && $model->save()){
  77. $order = new Order();
  78. $order->load(Yii::$app->request->post());
  79. $order->uslugi_id = Yii::$app->request->post('Zayvki')['uslugi_id'];
  80. $order->category_id = 3;
  81. $order->link('zayvki', $model);
  82.  
  83. $response = Yii::$app->getResponse();
  84. $response->setStatusCode(201);
  85. $id = implode(',', array_values($model->getPrimaryKey(true)));
  86. $response->getHeaders()->set('Location',Url::toRoute(['view', 'id' => $id],true));
  87. } elseif (!$model->hasErrors()) {
  88. throw new ServerErrorHttpException('Проверет правильность внесенных данных');
  89. }
  90. return $model;
  91. }
  92.  
  93. public function actionMyzayvki(){
  94. return $this->findModel();
  95. }
  96.  
  97. private function findModel(){
  98. return Zayvki::find()->where(['user_id' => Yii::$app->user->identity->id])->all();
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment