【问题标题】:Yii2: I have a new column and now I get Getting unknown propertyYii2:我有一个新专栏,现在我得到了未知属性
【发布时间】:2020-10-02 16:24:52
【问题描述】:

我的 CarsSearch 模型中有一个查找功能:

public function search($params)
{
    $query = Cars::find()->select(['color' => '1']); // This is a longer SQL query.

    $dataProvider = new ActiveDataProvider([
        $query  => $query,
        $this->load($params);
        return $dataProvider;
    ]);
}

我在非常简单的汽车视图中使用了 $dataProvider:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'color'
    ]
]) ?>

但是我收到了这个错误:

Getting unknown property: app\models\Cars::color

如何添加 color 属性?

【问题讨论】:

    标签: gridview yii2 dataprovider


    【解决方案1】:

    我在我的 汽车模型 中添加了 read 并且它有效:

    public $color;
    

    【讨论】:

    • 如果你这样使用它就不会指向你的 db 列,它只是对象属性,值只与对象有关。
    【解决方案2】:

    我看到属性color 在您的数据库表cars 中,因此您的类Cars 必须由ActiveRecord 扩展。您只需在模型规则Cars 中添加color。例如:

    ['color', 'integer']
    

    按照您添加的方式,该属性将始终为null,除非您设置了一些值。如果您在规则中设置它,当您找到对象时,该对象将具有color,其值在您的数据库中。 如果您有任何问题,请提供CarsCarsSearch 课程中的代码

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 2022-10-19
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多