500(内部服务器错误)Yii2依赖下拉列表

时间:2017-11-21 13:32:41

标签: php yii2

您好,这是我第一次尝试在yii2中从头开始做一个下拉菜单,我正在他们的wiki中阅读一些教程并按照说明进行操作。

我的问题是依赖下拉列表不起作用,当我选择一个类别子类别中没有任何内容时,子类别只列出所有子类别名称。

在我的SubCatController中:

 public function actionLists($id)
{
    $countSubCat = SubCat::find()
                ->where(['category_id' => $id])
                ->count();

    $SubCat = SubCat::find()
                ->where(['category_id' => $id])
                ->count();

    if ($countSubCat > 0) {
        foreach($SubCat as $id) {
            echo "<option value'".$id->id."'>".$id->sub_category."</option>";
        }
    }
    else {
        echo "<option>-</option>";
    }
}

以我的形式:

<?= $form->field($model, 'category_id')->dropDownlist(
                                            ArrayHelper::map(Category::find()->all(), 'id', 'category_name'),
                                            [
                                                'prompt' => 'Select Category',
                                                'onchange' => '
                                                    $.post( "index.php?r=sub-cat/lists&id='.'"+$(this).val(), function( data ) {
                                                        $( "select#models-contact" ).html( data );
                                                    });'

                                            ]
); ?>

 <?= $form->field($model, 'sub_cat_id')->dropDownlist(
                                            ArrayHelper::map(SubCat::find()->all(), 'id', 'sub_category'),
                                            [
                                                'prompt' => 'Select Sub Category',

                                            ]
); ?>

我坚持使用这个我无法理解任何人可以帮助我。 TIA

1 个答案:

答案 0 :(得分:0)

我是在某人的帮助下修好的。

 $SubCat = SubCat::find()
            ->where(['category_id' => $id])
            ->all();

if (!empty($SubCat)) {
    foreach($SubCat as $subcat) {
        echo "<option value'".$subcat->id."'>".subcat->sub_category."</option>";
    }
}
else {
    echo "<option>-</option>";
}

}