Beispiel #1
0
 /**
  * @inheritdoc
  */
 protected function getAdvancedDropDownList($id, $search)
 {
     switch ($id) {
         case 'product_i18n.name':
             return Html::findAdvancedDropDownListData('kalibao\\common\\models\\product\\ProductI18n', ['product_id', 'name'], [['LIKE', 'name', $search], ['i18n_id' => Yii::$app->language]], 10);
             break;
         case 'brand.name':
             return Html::findAdvancedDropDownListData('kalibao\\common\\models\\brand\\Brand', ['id', 'name'], [['LIKE', 'name', $search]], 10);
             break;
         case 'supplier.name':
             return Html::findAdvancedDropDownListData('kalibao\\common\\models\\supplier\\Supplier', ['id', 'name'], [['LIKE', 'name', $search]], 10);
             break;
         case 'variantList':
             $data = (new ActiveQuery(Variant::className()))->joinWith('productI18ns')->where(['LIKE', 'name', $search])->andWhere(['i18n_id' => Yii::$app->language])->limit(25)->all();
             $id = '';
             $value = '';
             $models = [];
             foreach ($data as $variant) {
                 $value = $variant->productI18n->name . '  •  ';
                 foreach ($variant->variantAttributes as $varAtt) {
                     $attribute = $varAtt->attributeI18n ? $varAtt->attributeI18n->value : $varAtt->attributeI18ns[0]->value;
                     $value .= '<span class=badge>' . $attribute . '</span> ';
                 }
                 $models[] = ['id' => $variant->id, 'value' => $value];
             }
             return Html::activeAdvancedDropDownListData($models, 'id', 'value');
             break;
         default:
             return [];
             break;
     }
 }
 /**
  * @inheritdoc
  */
 protected function getAdvancedDropDownList($id, $search)
 {
     $explode = explode('|', $id);
     $id = $explode[0];
     $attr_type = isset($explode[1]) ? $explode[1] : null;
     switch ($id) {
         case 'attribute_type_i18n.value':
             return Html::findAdvancedDropDownListData('kalibao\\common\\models\\attributeType\\AttributeTypeI18n', ['attribute_type_id', 'value'], [['LIKE', 'value', $search], ['i18n_id' => Yii::$app->language]], 10);
             break;
         case 'attribute.value':
             $models = (new \yii\db\Query())->select(['concat(attribute_id, "|", value)', 'value'])->from('attribute')->leftJoin('attribute_i18n', '`attribute`.`id` = `attribute_i18n`.`attribute_id`')->where(['attribute_type_id' => $attr_type])->andWhere(['LIKE', 'value', $search])->andWhere(['i18n_id' => Yii::$app->language])->limit(10)->all();
             $attributeId = '';
             $attributeValue = '';
             if (!empty($models)) {
                 $keys = array_keys($models[0]);
                 $attributeId = $keys[0];
                 $attributeValue = isset($keys[1]) ? $keys[1] : $keys[0];
             }
             return Html::activeAdvancedDropDownListData($models, $attributeId, $attributeValue);
             break;
         default:
             return [];
             break;
     }
 }