Commit c4cdf7e4f94bc84a9861e7d67cc9ec1440f703a7
1 parent
d96878c5
commit before grand update
Showing
1 changed file
with
40 additions
and
1 deletions
Show diff stats
controllers/VariantController.php
| @@ -13,7 +13,8 @@ | @@ -13,7 +13,8 @@ | ||
| 13 | use yii\web\Controller; | 13 | use yii\web\Controller; |
| 14 | use yii\web\NotFoundHttpException; | 14 | use yii\web\NotFoundHttpException; |
| 15 | use yii\filters\VerbFilter; | 15 | use yii\filters\VerbFilter; |
| 16 | - | 16 | + use yii\web\Response; |
| 17 | + | ||
| 17 | /** | 18 | /** |
| 18 | * VartiantController implements the CRUD actions for ProductVariant model. | 19 | * VartiantController implements the CRUD actions for ProductVariant model. |
| 19 | */ | 20 | */ |
| @@ -306,4 +307,42 @@ | @@ -306,4 +307,42 @@ | ||
| 306 | throw new NotFoundHttpException('The requested page does not exist.'); | 307 | throw new NotFoundHttpException('The requested page does not exist.'); |
| 307 | } | 308 | } |
| 308 | } | 309 | } |
| 310 | + | ||
| 311 | + public function actionList($q = null, $id = null) | ||
| 312 | + { | ||
| 313 | + \Yii::$app->response->format = Response::FORMAT_JSON; | ||
| 314 | + $out = [ | ||
| 315 | + 'results' => [ | ||
| 316 | + 'id' => '', | ||
| 317 | + 'text' => '', | ||
| 318 | + ], | ||
| 319 | + ]; | ||
| 320 | + if (!is_null($q)) { | ||
| 321 | + $out[ 'results' ] = ProductVariant::find() | ||
| 322 | + ->select( | ||
| 323 | + [ | ||
| 324 | + 'product_variant.id as id', | ||
| 325 | + 'product_variant.sku as text', | ||
| 326 | + ] | ||
| 327 | + ) | ||
| 328 | + ->where( | ||
| 329 | + [ | ||
| 330 | + 'like', | ||
| 331 | + 'product_variant.sku', | ||
| 332 | + $q, | ||
| 333 | + ] | ||
| 334 | + ) | ||
| 335 | + ->andFilterWhere( | ||
| 336 | + [ | ||
| 337 | + '!=', | ||
| 338 | + 'product_variant.id', | ||
| 339 | + $id, | ||
| 340 | + ] | ||
| 341 | + ) | ||
| 342 | + ->limit(20) | ||
| 343 | + ->asArray() | ||
| 344 | + ->all(); | ||
| 345 | + } | ||
| 346 | + return $out; | ||
| 347 | + } | ||
| 309 | } | 348 | } |