我想在产品表单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']);
}
答案 0 :(得分:1)
我建议您使用嵌套集模型,而不是在类别结构中使用parent_id
,因为您将面临一些技术限制(如SQL中的递归查询)和将来的性能问题。
有一个good tree-manager extension developed by Krajee,允许您为类别选择嵌入一个漂亮的下拉列表(支持多个)。 它也有一个很好的树构造函数。
当然,你可以自己实现这样的功能,但它并不像开始时那么容易。