View Codeigniter中的错误foreach:非法字符串偏移

时间:2017-02-28 09:25:11

标签: codeigniter error-handling warnings

请帮助,我使用foreach从数据库返回数据,但它只返回最后的数据(数组总是用最后的数据更新)。所以我修改了代码,但是我得到了错误:foreach中的非法字符串偏移。

这是我的控制器

foreach($dataDesa as $desa)
        {
            $namaDesa = json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1'));
            $datakonten[$namaDesa] = array(                         
                                        'proyek' =>json_decode($this->curl->simple_get($desa->alamat_api.'/proyek_pertanian')),
                                        'nama_desa' =>json_decode($this->curl->simple_get($desa->alamat_api.'/info_desa?ID_DESA=1')),
                                        'lelang' =>json_decode($this->curl->simple_get($desa->alamat_api.'/pelelangan'))
                                        );
        }

        $datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);

        $nama_Desa = array();
        foreach($datakonten['getAllDesa'] as $row)
        {
           $nama_Desa[] = $row->nama_desa;
        }

        $datakonten['nama_desa']=$nama_Desa;
        $data['content'] = $this->load->view('public/konten/v_home',$datakonten,TRUE);
    $this->load->view('public/halaman/v_home',$data);

这是我的观点

$i=0;
foreach($nama_desa[$i]['proyek'] as $rows)
{   
    $nama = $rows->nama_proyek; 
    i++;
}

我已经测试了$ nama_desa [0]和$ nama_desa [1]并且他们返回了值(值为#34; Kranon"和" Wulung")并且我使用了价值像$ Kranon [' proyek']并且没有错误并且返回了我想要的价值,但当我将它与$ nama_desa [$ i] [' proyek'] i结合使用时得到了这个错误。 ` 请帮助,提前谢谢

3 个答案:

答案 0 :(得分:0)

您只需将$ row-> nama_desa推送到$ nama_desa。并尝试从$ nama_desa获得[' proyek']?

答案 1 :(得分:0)

正如您在上面所解释的那样,您通过此$ nama_desa [1]获得了价值,但是您尝试访问此密钥$ nama_desa [$ i] [' proyek']这意味着它正在寻找$ nama_desa [1] ] [' proyek']这是不存在的。

只做

print_r($name_desa);die;

你会发现没有任何关键字出现在' proyek'在$ name_desa [1]上(键' 1'我只给出了例子。它可以是任意数量的键)

我想你会通过访问这个$ nama_desa [' proyek']来获得你的价值。或者你会对打印结果有所了解。

答案 2 :(得分:0)

我刚刚找到了解决方案。 每当我想将传递另一个值的变量传递给foreach时,我总是会收到错误,因此我修改了控制器,以便我可以直接将值传递给View中的foreach。我从Controller中将“get-data-from-API”转换为View。

我的控制器:

$datakonten['getAllDesa'] = $this->M_desa->getAllDesa($idStatus);
$data['content'] = $this->load>view('public/konten/v_home',$datakonten,TRUE);

我的观点:

foreach($getAllDesa as $rows)
        {
            $proyek = json_decode($this->curl->simple_get($rows->alamat_api_lelang));

            foreach($proyek as $baris)
            {
                $namaProyek = $baris->nama_proyek;

                ?>
                Nama Proyek : <?php echo $namaProyek;?></br>
                <?php   
            }

        }