【问题标题】:Yii2 : 'Trying to get property of non-object' in GridViewYii2:在 GridView 中“试图获取非对象的属性”
【发布时间】:2015-06-23 15:49:37
【问题描述】:

我想问你关于在 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-&gt;ADIKBINAAN_ID); 中得到“试图获取非对象的属性”

它看起来像 Action Column,但我不想使用它。

我该如何解决?

【问题讨论】:

  • 请您描述一下您的 CariAdikBinaan 课程。
  • 确保 $dataprovider 声明正确

标签: php gridview yii2


【解决方案1】:

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

SqlDataProvider 以数组的形式提供数据,每个代表一行查询结果。

因此你的代码应该是这样的

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多