首页 > 解决方案 > Can't read data that send from controller to view by foreach

问题描述

The $results that send to the view is undefined

public function action(){
        // if($this->input->post('data_action'))
        // {
        //  $data_action = $this->input->post('data_action');
        //  if($data_action=="fetch_all")
        //  {
                $api_url = "https://jsonplaceholder.typicode.com/users";

                $process = curl_init($api_url); //your API url
                curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
                $return = curl_exec($process);
                curl_close($process);
                $results=json_decode($return);
                //finally print your API response

                $this->load->view('masterPartner',$results);
                //print_r($result);
            //  }
            // }

and this is the view

<?php foreach($results as $result)
                      { ?>
                        <tr>
                        <th scope="row"><?php echo $result->id ?></th>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td><a class="btn btn-success " style="margin-right:5px"href="/Crudview/index.php/edit-partner" role="button">Edit</a><a class="btn btn-danger" href="/Crudview/index.php/viewApi" role="button">Delete</a>
                        </tr>
                        <?php } ?>

the first error

A PHP Error was encountered Severity: Notice

Message: Undefined variable: results

Filename: views/masterPartner.php

Line Number: 115

Second error

A PHP Error was encountered Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: views/masterPartner.php

Line Number: 115

标签: phpcodeigniterforeach

解决方案


这是因为视图中不存在 $results。它期望通过数组传入 $results。

要传递它,您需要更改当前代码

$results=json_decode($return);
//finally print your API response
$this->load->view('masterPartner',$results);

$data['results']=json_decode($return);
//finally print your API response
$this->load->view('masterPartner',$data);

所以现在 $results 可以在您的视图中访问。


推荐阅读