раскрывающийся список внешнего ключа yii2


Я пытаюсь отобразить выпадающий список со списком категорий в рамках 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\база\обработчик ошибок::handlefatalerror()"

Большинство сообщений, связанных с моей проблемой, относятся к версии 1 фреймворк, но не могу найти хороший пример, как это сделать с версией 2.

Author: Gerard van den Bosch, 2015-05-22

3 answers

 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']
       )?> 
 4
Author: Yagnesh bhalala, 2016-06-23 12:11:52

Я пропустил ошибку сверху, в которой говорилось "Класс ArrayHelper не найден", это было решено путем добавления следующей строки сверху:

use yii\helpers\ArrayHelper;
 1
Author: Gerard van den Bosch, 2015-05-22 12:02:27

Добавьте ->asArray() в свой запрос поиска:

$categoryArray = ArrayHelper::map(\app\models\Category::find()->orderBy('name')->asArray()->all(), 'id', 'name');
 0
Author: Viacheslav, 2015-05-22 11:27:56