Advertisement
pmtpenza

Untitled

Jun 21st, 2019
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 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.  
  18. class ZayvkiController extends ActiveController
  19. {
  20. public $modelClass = 'api\models\Zayvki';
  21.  
  22. public function actions()
  23. {
  24. $actions = parent::actions();
  25.  
  26. unset($actions['create']);
  27.  
  28. return $actions;
  29. }
  30.  
  31. public function behaviors()
  32. {
  33. $behaviors['corsFilter'] = [
  34. 'class' => \yii\filters\Cors::className(),
  35. 'cors' => [
  36. 'Origin' => ['*'],
  37. 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
  38. 'Access-Control-Allow-Credentials' => false,
  39. ],
  40.  
  41. ];
  42. $behaviors['contentNegotiator'] = [
  43. 'class' => ContentNegotiator::className(),
  44. 'formats' => [
  45. 'application/json' => Response::FORMAT_JSON
  46. ]
  47.  
  48. ];
  49. unset($behaviors['authenticator']);
  50. $behaviors['authenticator'] = [
  51. 'class' => HttpBearerAuth::className(),
  52. ];
  53.  
  54. $behaviors['access'] = [
  55. 'class' => AccessControl::className(),
  56. 'rules' => [
  57. [
  58. 'allow' => true,
  59. 'roles' => ['@'],
  60. ],
  61. ],
  62. ];
  63.  
  64. return $behaviors;
  65. }
  66.  
  67. public function actionCreate()
  68. {
  69. $params = \yii\helpers\Json::decode(Yii::$app->getRequest()->getRawBody());
  70.  
  71. $model = new Zayvki();
  72. $model->attributes = $params;
  73. $model->user_id = Yii::$app->user-id;
  74.  
  75. if ($model->validate() && $model->save()){
  76. $order = new Order();
  77. $order->load(Yii::$app->request->post());
  78. $order->uslugi_id = Yii::$app->request->post('Zayvki')['uslugi_id'];
  79. $order->category_id = 3;
  80. $order->load(Yii::$app->request->post());
  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
Advertisement