父类ID为gii ini product yii2的多个类别ID

时间:2018-04-08 08:46:43

标签: php yii2 gii

我想在产品表单yii2中创建一个多类别下拉列表。表类别具有parent_id列。因此,当我想选择parent_id为0或1的类别时,它会显示具有该parent_id的其他类别。我用gii发生器。你能帮我看一下控制器模型吗? 控制器

public function actionCreate()
{
    $model = new Product();
    $category = new Category();
    $time = time();
    $model->created_at = $time;
    $model->updated_at = $time;
    $dataCat = $category->getCategoryParent();
    if(empty($dataCat)){
        $dataCat = array();
    }

视图

<?= $form->field($model, 'category_id')->dropDownList($dataCat,['prompt'=>'--obat--']) ?>

模型

public function getCategoryParent()
{
    return $this->hasOne(Category::className(), ['idCate' => 'category_id']);
}

1 个答案:

答案 0 :(得分:1)

我建议您使用嵌套集模型,而不是在类别结构中使用parent_id,因为您将面临一些技术限制(如SQL中的递归查询)和将来的性能问题。

有一个good tree-manager extension developed by Krajee,允许您为类别选择嵌入一个漂亮的下拉列表(支持多个)。 它也有一个很好的树构造函数。

tree-view input

当然,你可以自己实现这样的功能,但它并不像开始时那么容易。