Php 具有父id的多类别id gii ini产品yii2

Php 具有父id的多类别id gii ini产品yii2,php,yii2,gii,Php,Yii2,Gii,我想在产品表单yii2中创建一个多类别下拉列表。表类别有一个父\u id列。因此,当我想选择父项id为0或1的类别时,它会显示具有该父项id的其他类别。我使用gii生成器。你能帮我做控制器模型视图吗? 控制器 public function actionCreate() { $model = new Product(); $category = new Category(); $time = time(); $model->created_at = $tim

我想在产品表单yii2中创建一个多类别下拉列表。表类别有一个父\u id列。因此,当我想选择父项id为0或1的类别时,它会显示具有该父项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();
    }
看法


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

有一个,允许您嵌入一个好看的下拉列表(支持多个)进行类别选择。 它还有一个很好的树构造函数


当然,您可以自己实现这样的功能,但这并不像一开始看起来那么容易。

您需要提供您迄今为止尝试过的功能,否则,我们帮不了您多少忙。我想您需要的是depdrop菜单,请尝试一下
<?= $form->field($model, 'category_id')->dropDownList($dataCat,['prompt'=>'--obat--']) ?>
public function getCategoryParent()
{
    return $this->hasOne(Category::className(), ['idCate' => 'category_id']);
}