使用父 class 的 属性 在 php (yii2) 中给出 "unknown property" 错误
Using property of parent class gives "unknown property" error in php (yii2)
我正在使用 yii2 和 Kartik 的 yii2-grid
gridview 扩展。我在 GridView::widget
初始化时得到异常 Setting unknown property: kartik\grid\GridView::autoIdPrefix
。但是 kartik\grid\GridView
的继承是 yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\Object
而 yii\base\Widget
有 public 参数 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'])
]
]
],
],
]); ?>
怎么了?
属性 $autoIdPrefix 是小部件 class 的静态 属性,因此不会被子 classes 继承。如果你需要修改widget的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'])
]
]
],
],
]); ?>
我正在使用 yii2 和 Kartik 的 yii2-grid
gridview 扩展。我在 GridView::widget
初始化时得到异常 Setting unknown property: kartik\grid\GridView::autoIdPrefix
。但是 kartik\grid\GridView
的继承是 yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\Object
而 yii\base\Widget
有 public 参数 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'])
]
]
],
],
]); ?>
怎么了?
属性 $autoIdPrefix 是小部件 class 的静态 属性,因此不会被子 classes 继承。如果你需要修改widget的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'])
]
]
],
],
]); ?>