ErrorException 试图获取 属性 'kode_buyer' 的非对象

ErrorException Trying to get property 'kode_buyer' of non-object

我正在尝试用我的数据库中的数据填充我的下拉列表

这是我的模特:

public function getBuyer($slug = false)
{
    if ($slug == false) {
        return $this->findAll();
    }

    return $this->where(['kode_divisi' => $slug])->first();
}

控制器:

public function produksi()
{
    $data = [
        'main' => 'buyer/produksi',
        'title' => 'List Produksi',
        'hasil' => $this->buyerModel->getbuyer()
    ];
    return view('template/template', $data);
}

并查看:

<div class="content-wrapper">
<!-- Content Header (Page header) -->
<div class="content-header">
    <div class="container-fluid">
        <div class="row mb-2">
            <div class="col-md-10 col-sm-10 col-xs-10 mx-auto">
                <div class="card">
                    <div class="card-header bg-info" style="text-align: center;">
                        <h2>Form Tambah Data Pegawai</h2>
                    </div>
                    <form action="/pegawai/save" method="post">
                        <?= csrf_field(); ?>
                        <div class="form-group">
                            <label for="kode_divisi" class="col-sm-2 col-form-label">Kode Divisi</label>
                            <div class="col-sm-12">
                                <input type="date" name="bday" max="3000-12-31" 
                                min="1000-01-01" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="name">Buyer</label>
                            <div class="controls">
                                <select required name="kode_gejala">
                                    <option value="" disabled diselected>-- Pilih Buyer --</option>
                                    <?php                                
                                    foreach ($hasil as $row) {  
                                        echo "<option value='".$row->kode_buyer."'>".$row->nama_buyer."</option>";
                                    }
                                    echo"
                                    </select>"
                                    ?>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="nama_pegawai" class="col-sm-2 col-form-label">Nama Pegawai</label>
                                <div class="col-sm-12">
                                    <input type="text" class="form-control" id="nama_pegawai" name="nama_pegawai" value="<?= old('nama_pegawai'); ?>">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="job_desc" class="col-sm-2 col-form-label">Job Desc</label>
                                <div class="col-sm-12">
                                    <input type="text" class="form-control" id="job_desc" name="job_desc" value="<?= old('job_desc'); ?>">
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="col-sm-12">
                                    <button type="submit" class="btn btn-info btn-lg"><i class="fa fa-plus"></i> Tambah Data</button>
                                    <a class="btn btn-danger btn-lg" href="/pegawai" role="button"><i class="fa fa-remove"></i> Batal</a>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

它给了我这个错误:

ErrorException Trying to get property 'kode_buyer' of non-object

它说这一行是错误的原因:

echo "<option value='".$row->kode_buyer."'>".$row->nama_buyer."</option>";

有办法解决这个问题吗?我已经尝试了一些替代方法,但它导致了同样的错误

我正在使用 Codeigniter 4 BTW。

根据您的评论,您的数据如下所示:

array(3) { ["main"]=> string(14) "buyer/produksi" 
           ["title"]=> string(13) "List Produksi" 
           ["dataku"]=> object(stdClass)#87 (5) { 
                ["kode_buyer"]=> string(5) "IK001" 
                ["nama_buyer"]=> string(13) "Ik Collection" ["pic"]=> string(13) "Wanda Purnomo" 
                ["no_tlp"]=> string(1) "0" 
                ["alamat"]=> string(6) "Cimahi" 
           } 
         }

这意味着 kode_buyer 不在数组的顶层,而是 dataku 的嵌套对象,因此 $row->kode_buyer 给你一个错误,因为它在那里不存在。您需要以这种方式访问​​ kode_buyer:

$row["dataku"]->kode_buyer