使用父类的属性在php(yii2)中给出“未知属性”错误

时间:2015-02-27 18:25:26

标签: php inheritance gridview properties yii2

我使用的是yii2和Kartik的yii2-grid gridview扩展程序。我在Setting unknown property: kartik\grid\GridView::autoIdPrefix的初始化时得到异常GridView::widget。但kartik\grid\GridView yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\Objectyii\base\Widget的继承具有公共参数autoIdPrefix

我正在使用以下初始化:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'autoIdPrefix' => 'igl_' . $model->id,
    'showHeader' => false,
    'columns' => [
        [ 'attribute' => 'language' ],
        [
            'class' => 'kartik\grid\EditableColumn',
            'attribute' => 'name',
            'value' => 'name',
            'editableOptions' => [
                'formOptions' => [
                    'action' => \yii\helpers\Url::to(['/ingredient-group-lang'])
                ]
            ]

        ],
    ],
]); ?>

有什么问题?

1 个答案:

答案 0 :(得分:1)

属性$ autoIdPrefix是窗口小部件类的静态属性,因此不会被子类继承。如果你需要更改小部件的ID我建议直接设置它,所以

<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'id' => 'igl_' . $model->id,
'showHeader' => false,
'columns' => [
    [ 'attribute' => 'language' ],
    [
        'class' => 'kartik\grid\EditableColumn',
        'attribute' => 'name',
        'value' => 'name',
        'editableOptions' => [
            'formOptions' => [
                'action' => \yii\helpers\Url::to(['/ingredient-group-lang'])
            ]
        ]

    ],
],

]); ?&GT;