gpt4 book ai didi

php - Yii2:显示没有子值的 Kartik DepDrop 小部件

转载 作者:可可西里 更新时间:2023-10-31 23:47:25 25 4
gpt4 key购买 nike

我是 Yii2 的新手。我正在使用 Kartik 提供的 DepDrop 小部件。现在,我可以从 column1 中提取数据,但是,column2 中的相关数据没有显示出来。我什至无法点击它。

这里是mysql表的部分内容。

ID | name | sub_ID | category
1 | up | 11 | T-shirt
1 | up | 12 | jet
2 | shoe | 21 | nike
2 | shoe | 22 | adidda

这是我的_form.php代码

<?= $form->field($model, 'category')->dropDownlist(
ArrayHelper::map(itemcategory::find()->all(), 'ID', 'name'), ['id' => 'cat_id', 'prompt' => 'Select…']
);?>

<?= $form->field($model, 'subcategory')->widget(
DepDrop::classname(), [
'options' => ['id' => 'subcategory', 'placeholder' => 'Select…'],
'pluginOptions' => [
'depends' => ['cat_id'],
'url'=>\yii\helpers\Url::to(['/positemcategory/Subcat'])
]
]
)?>

这是我的模型 ItemCategory.php 代码

public function getSubCatList($cat_id)
{
$data = self::find()->where(['ID' => $cat_id])->select(['sub_ID AS id', 'subcategory AS name'])->asArray()->all();
return $data;
}

这是 Controller Itemcategory.php 代码

public function actionSubcat()
{
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
// $out = \app\models\ItemCategory::getSubCategoryList($cat_id);
$out = self::getSubCatList($cat_id);
echo Json::encode(['output'=>$out, 'selected'=>'']);
return;
}
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}

我想让用户通过名称选择项目,并在 mysql 的另一个表中只保存 ID 而不是全名。

最佳答案

使用 Yii2 的 ArrayHelper。

 $out = self::getSubCatList($cat_id);
echo Json::encode(['output'=>ArrayHelper::map($out,'id','name'),'selected'=>'']);

结果,您将获得一个以 id 为键、以 name 为值的数组。

关于php - Yii2:显示没有子值的 Kartik DepDrop 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com