public function actionGetTypeValues($param, $link_category = false) { if ($link_category) { $params = \app\models\GoodsParams::find()->where('goods_params_name_id=:goods_params_name_id AND link_category=:link_category', [':goods_params_name_id' => $param, ':link_category' => $link_category])->orderBy('sort ASC')->all(); } else { $params = \app\models\GoodsParams::find()->where('goods_params_name_id=:goods_params_name_id', [':goods_params_name_id' => $param])->orderBy('sort ASC')->all(); } $arParams = ['' => ' - Выбрать значение - ']; foreach ($params as $param) { $arParams[$param->id] = $param->value; } print \yii\helpers\BaseHtml::dropDownList('listValues', '', $arParams); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = GoodsParams::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'sort' => $this->sort, 'link_category' => $this->link_category]); $query->andFilterWhere(['like', 'value', $this->value])->andFilterWhere(['like', 'public_value', $this->public_value])->andFilterWhere(['like', 'goods_params_name_id', $this->goods_params_name_id]); return $dataProvider; }
/** * Deletes an existing GoodsParams model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionTech() { exit; $GoodsParamsName = \app\models\GoodsParamsName::find()->all(); foreach ($GoodsParamsName as $gpn) { print '============================== <br>'; print $gpn->id . '<br>'; $oGP = \app\models\GoodsParams::find()->where('goods_params_name_id=:goods_params_name_id', [':goods_params_name_id' => $gpn->id])->all(); // print ('<pre>');print_r($oGP);print('</pre>'); $arGP = \yii\helpers\ArrayHelper::map($oGP, 'id', 'id'); print implode(',', $arGP) . '<br>'; if (count($arGP) == 0) { continue; } // $goods = \app\components\Goods::find($gpn->goods_type_type, $gpn->id . ' not in (:ids)', [':ids' => implode(',',$arGP)])->all(); $goods = \app\components\Goods::find($gpn->goods_type_type, $gpn->id . ' not in (' . implode(',', $arGP) . ')', [])->all(); foreach ($goods as $good) { $ar = \yii\helpers\ArrayHelper::toArray($good); print '<pre>'; print_r($ar); print '</pre>'; \app\models\Goods::deleteAll('id=:goods_id', [':goods_id' => $good->goods_id]); } } }
public function actionDoFiler($goodsType, $goodsProvider = false) { header('Content-Type: utf-8'); $oGoodsType = \app\models\GoodsType::findOne($goodsType); if (!$oGoodsType instanceof \app\models\GoodsType) { throw new Exception('Не верный тип товара'); } $GoodsParamsName = $oGoodsType->getGoodsParamsNames()->orderBy('sort')->all(); $arParamsType = \yii\helpers\ArrayHelper::map($GoodsParamsName, 'id', 'name'); // $arParamsType = [['id'=>'providers_id', 'name'=>'Поставщик']] + $arParamsType; $sql = 'select * from offers as O INNER JOIN goods as G INNER JOIN goods_t_' . $goodsType . ' as GT ' . 'where O.goods_id = G.id and G.id = GT.goods_id '; $arAnd = ['G.goods_type_type = :GT']; $arParams = [':GT' => $goodsType]; if ($goodsProvider) { $arAnd[] = 'O.providers_id = :providers_id'; $arParams[':providers_id'] = $goodsProvider; } foreach ($_GET as $k => $v) { if (strlen($v) > 0 && isset($arParamsType[$k])) { $arAnd[] = "GT.{$k} = :{$k}"; $arParams[":{$k}"] = $v; } } $sql .= ' and ' . implode(' and ', $arAnd); $connection = \Yii::$app->db; $command = $connection->createCommand($sql); $command->bindValues($arParams); $items = $command->queryAll(); $goodsValues = \app\models\GoodsParams::find()->all(); // $arrGoodsValues = \yii\helpers\ArrayHelper::toArray($goodsValues, ['app\models\GoodsParams'=>['id', 'value', 'public_value']]); $arrGoodsValues = \yii\helpers\ArrayHelper::map($goodsValues, 'id', 'value'); // print ('<pre>');print_r($arrGoodsValues);print('</pre>');exit('100'); $providers = \app\models\Providers::find()->all(); $arProviders = \yii\helpers\ArrayHelper::map($providers, 'id', 'name'); $session = Yii::$app->session; $session->open(); print $this->renderPartial('list', ['arParamsType' => $arParamsType, 'items' => $items, 'arrGoodsValues' => $arrGoodsValues, 'arProviders' => $arProviders, 'typePrice' => $session['typePrice']]); }
/** * Список значений параметра зависимого от $parentParam * @return mixed */ public function actionGetChildParams($k, $paramId, $parentParamVal) { $GoodsParams = \app\models\GoodsParams::find()->where('link_category=:parentId AND goods_params_name_id=:goods_params_name_id', [':parentId' => $parentParamVal, ':goods_params_name_id' => $paramId])->orderBy('sort')->all(); $arParams = []; foreach ($GoodsParams as $oParam) { $arParams[$oParam->id] = $oParam->value; } $arRes = ['k' => $k, 'paramId' => $paramId, 'params' => $arParams]; print json_encode($arRes); }