【问题标题】:Yii2: How to define textInput() with dynamic attribute names in a view file?Yii2:如何在视图文件中使用动态属性名称定义 textInput()?
【发布时间】:2019-03-18 13:49:50
【问题描述】:

我的控制器文件中有一个函数可以获取居住在城市中的人。

我的控制器文件:

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 获取未知 属性:app\models\Persons::John

【问题讨论】:

    标签: php model yii2


    【解决方案1】:

    尝试将您的视图更改为这样:

    <?php
    foreach ($model as $key=>$person) {
        echo $form->field($person, "[{$key}]person_name")->textInput(['value' => $person->person_name]);
    }
    ?>
    

    【讨论】:

      【解决方案2】:

      field() 方法的第二个参数应该是字段名,而不是当前字段值

      在你的例子中:

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

      文档:https://www.yiiframework.com/doc/guide/2.0/en/input-forms

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-29
        • 2013-01-29
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        相关资源
        最近更新 更多