Yii2 从另一个型号的Category#u主表中获取类别名称';s观点

Yii2 从另一个型号的Category#u主表中获取类别名称';s观点,yii2,yii2-advanced-app,yii2-model,Yii2,Yii2 Advanced App,Yii2 Model,我有两张不同的桌子: 文件管理器 类别(u)主机 我想在查看文件文档模型的下拉列表中输入目录名。 我创建了一个名为catmodel的模型,其中包含类别\u master的详细信息。我还创建了docmodel的模型 如何在视图的下拉列表中获取类别名称?据我所知,您将根据所选文档显示类别下拉列表。我说得对吗 如果是这样,则需要根据文档模型中的cat\u id查询类别。我假设cat\u id是对文档表的引用 你可以用这样的东西 $query = new Query; $query->select

我有两张不同的桌子:

文件管理器

类别(u)主机

我想在查看文件文档模型的下拉列表中输入目录名。 我创建了一个名为catmodel的模型,其中包含
类别\u master
的详细信息。我还创建了docmodel的模型


如何在视图的下拉列表中获取类别名称?

据我所知,您将根据所选文档显示类别下拉列表。我说得对吗

如果是这样,则需要根据文档模型中的
cat\u id
查询类别。我假设
cat\u id
是对文档表的引用

你可以用这样的东西

$query = new Query;
$query->select(['category.*'])
->from('category')
->leftJoin('document', 'category.cat_id = document.cat_id');
上面的代码查询
cat\u id
等于所选文档
cat\u id
的所有类别

希望这有帮助

步骤:1
step :1

Create a function in category module file

public function getcategories()
{
        return ArrayHelper::map(DocCatogories::find()->all(), 'catogory_id', 'catogory_name');
}

step :2

Create a function in category module or
public function getcategories(){
return array();
}


step :3
Write a following code for auto fill up drop down list in document view file.

<div class = "form-group">
        <label class = "col-sm-3 control-label" for = "catogory_id">Select Category</label>
        <div class = "col-sm-9">
            <?php
                $categories = new DocCatogories;
                echo $form->field($model, 'catogory_id')->dropDownList($categories->getcategories())->label(false);
            ?>
        </div>
</div>
在类别模块文件中创建函数 公共函数getcategories() { 返回ArrayHelper::map(doccatogory::find()->all(),'catogory_id','catogory_name'); } 步骤:2 在类别模块或中创建函数 公共函数getcategories(){ 返回数组(); } 步骤:3 为文档视图文件中的自动填充下拉列表编写以下代码。 选择类别
非常感谢您回复@ekaj_03。我已经通过另一种方式解决了这个问题。
$query = new Query;
$query->select(['category.*'])
->from('category')
->leftJoin('document', 'category.cat_id = document.cat_id');
step :1

Create a function in category module file

public function getcategories()
{
        return ArrayHelper::map(DocCatogories::find()->all(), 'catogory_id', 'catogory_name');
}

step :2

Create a function in category module or
public function getcategories(){
return array();
}


step :3
Write a following code for auto fill up drop down list in document view file.

<div class = "form-group">
        <label class = "col-sm-3 control-label" for = "catogory_id">Select Category</label>
        <div class = "col-sm-9">
            <?php
                $categories = new DocCatogories;
                echo $form->field($model, 'catogory_id')->dropDownList($categories->getcategories())->label(false);
            ?>
        </div>
</div>