Yii2: Как определить textInput () с динамическими именами атрибутов в файле представления? - PullRequest
0 голосов
/ 18 марта 2019

В моем файле контроллера есть функция, позволяющая получить людей, живущих в городе.

Мой файл контроллера:

public function actionGetPersons($id_city)
{
    $model = Persons::find()->where(['id_city' => $id_city])->all();

    return $this->render('persons-city', [
        'model' => $model,
    ]);
}

Тогда у меня есть мойФайл модели, который должен отображать форму с текстовыми вводами: один текстовый ввод на человека и его имя атрибута должно быть именем человека .

Мой файл просмотра:

<?
foreach ($model as $person) {
    $form->field($person, $person->person_name)->textInput();
}
?>

Но браузер показывает эту ошибку:

Неизвестное свойство - yii \ base \ UnknownPropertyException Получение неизвестного свойства: приложение \ модели \ персоны :: Джон

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Попробуйте изменить свой взгляд так:

<?php
foreach ($model as $key=>$person) {
    echo $form->field($person, "[{$key}]person_name")->textInput(['value' => $person->person_name]);
}
?>
0 голосов
/ 18 марта 2019

второй параметр для метода field () должен быть именем поля, а не текущим значением поля

в вашем примере:

<?
foreach ($model as $person) {
    $form->field($person, 'person_name')->textInput();
}
?>

документы: https://www.yiiframework.com/doc/guide/2.0/en/input-forms

...