Yii2:'Trying to get property of non-object' 在 GridView 中

Yii2 : 'Trying to get property of non-object' in GridView

我想问你关于在 Yii2 中使用 Grid View 的问题。在我的网站中,我想将参数从控制器传递到 gridview,并将其用于 GET 参数。

我的控制器:

$sql = "SELECT * FROM adikbinaan WHERE adikbinaan.jenjang_id = $jenjang";

    $n = count(CariAdikBinaan::findBySql($sql)->all());

    $adikbinaan = new SqlDataProvider([
        'sql' => $sql,
        'totalCount' => $n,
        'sort' => [
            'attributes' => [
                'ADIKBINAAN_NAMALENGKAP',
            ],
        ],
        'pagination' => [
            'pageSize' => 20,
        ],
    ]);

    $adik = new CariAdikBinaan();

    return $this->render('index', [
        'dataProvider' => $adikbinaan,
        'data' => $adik,
    ]);

我的看法

    <?= GridView::widget([
    'dataProvider' => $dataProvider,
    'layout'=>"{pager}\n{items}\n{summary}",
    'showFooter'=>true,
    'showHeader'=>true,
    'showOnEmpty'=>false,
    'columns' => [
        'ADIKBINAAN_NAMALENGKAP',
        'ADIKBINAAN_TEMPATLAHIR',
        'ADIKBINAAN_TANGGALLAHIR',
        [
            'label'=>'Aksi',
            'format' => 'raw',
            'value'=>function ($data) {
                return Html::a(Html::encode("Lihat"),'adikbinaan/view?id='.$data->ADIKBINAAN_ID);
            },
        ],
    ],
]); ?>

我在 return Html::a(Html::encode("Lihat"),'adikbinaan/view?id='.$data->ADIKBINAAN_ID);

中得到 "Trying to get property of non-object"

它看起来像操作栏,但我不想使用它。

我该如何解决?

data 是数组而不是对象。来自 API page for SQLDataProvider:

SqlDataProvider provides data in terms of arrays, each representing a row of query result.

因此您的代码应为

return Html::a(Html::encode("Lihat"), 'adikbinaan/view?id='.$data['ADIKBINAAN_ID']);