【问题标题】:yii2 foreign key dropdownyii2 外键下拉菜单
【发布时间】:2015-08-04 07:46:04
【问题描述】:

我正在尝试在 yii2 框架中显示带有类别列表的下拉列表。

我的数据库中的表是用外键设置的,并使用模型和 Crud 生成器来生成代码。

我现在正在尝试编辑代码以将文本字段更改为包含类别表中的值的下拉列表。

<?php $categoryArray = ArrayHelper::map(\app\models\Category::find()->orderBy('name')->all(), 'id', 'name') ?>
<?= $form->field($model, 'category_id')->dropDownList($categoryArray, ['prompt' => '---- Select category ----'])->label('category') ?>

这会返回错误“2.yii\base\ErrorHandler::handleFatalError()”

与我的问题最相关的帖子是指框架的版本 1,但找不到如何使用版本 2 执行此操作的好示例。

【问题讨论】:

    标签: php drop-down-menu foreign-keys yii2


    【解决方案1】:
     use yii\helpers\ArrayHelper; 
    
     use backend\models\Model_name; 
    
     <?= $form->field($model, 'Field_id')->dropDownList(
                ArrayHelper::map(<Model_name>::find()->all(),'Field_id','Field_name'),
                ['prompt'=>'Select XYZ']
           )?> 
    

    【讨论】:

      【解决方案2】:

      我忽略了顶部的错误“找不到类 ArrayHelper”,这已通过在顶部添加以下行来解决:

      use yii\helpers\ArrayHelper;
      

      【讨论】:

        【解决方案3】:

        -&gt;asArray() 添加到您的查找查询中:

        $categoryArray = ArrayHelper::map(\app\models\Category::find()->orderBy('name')->asArray()->all(), 'id', 'name');
        

        【讨论】:

        • 添加 print_r($categoryArray) 看分类是否提取成功。还要调查完整的错误堆栈,也许它会让你知道究竟是什么导致了错误。或者在这里发布。对我来说,代码看起来不错,也许它在其他地方。
        • 这绝对不是原因,因为ArrayHelper 可以同时处理模型数组和数组数组。请添加var_dump$categoryArray 和完整的堆栈跟踪。
        • 我是 yii 框架的新手,突然发现我忽略了 topr 上的真正错误:找不到 Class 'ArrayHelper'
        • 那么问题现在解决了吗?在这种情况下,您可以自己添加答案。
        • 是的,通过添加 use yii\helpers\ArrayHelper;它解决了问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多