我想在Yii2中創建一個dependend dropDownList。我正在嘗試使用DepDrop Widget,但我無法理解如何根據自己的情況編輯代碼。我有1個模型,裏面我需要做類別下拉列表,根據category_id,下一個dropDownList應該是Item。 (如果我選擇類別1,該項目應該是Item1等等)。如何在Yii2中創建相關的下拉列表?
我想擴展只能做同一模型的下拉?我是Yii2的新手,所以。
我view
文件:
<div class="site-create">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'code') ?>
<?= $form->field($category, 'id')->dropDownList($category, ['id'=>'category-id']); ?>
<?= $form->field($item, 'subcat')->widget(DepDrop::Item(), [
'options'=>['id'=>'item-id'],
'pluginOptions'=>[
'depends'=>['category-id'],
'placeholder'=>'Select...',
'url'=>Url::to(['/site/subcat'])
]
]); ?>
我$model
爲$category
和$item
不同的模式。我把這些變量在行動
這是我action
使用不同的模式:
public function actionSubcat() {
$category = new Category();
$item = new Item();
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
$out = self::getSubCatList($cat_id);
echo Json::encode(['output'=>$out, 'selected'=>'']);
return $this->render('create', [
'category' => $category,
'item' => $item,
]);
}
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}
}
現在我得到的錯誤信息,即$category
變量是不確定的。有人能解釋我做錯了什麼嗎?