【问题标题】:Passing JSON from controller to view in codeigniter将 JSON 从控制器传递到 codeigniter 中的视图
【发布时间】:2016-09-20 12:06:01
【问题描述】:

我进行了 API 调用并收到了 JSON 格式的响应。

JSON:

{
  "Specialities": [
    {
      "SpecialityID": 1,
      "SpecialityName": "Eye Doctor"
    },
    {
      "SpecialityID": 2,
      "SpecialityName": "Chiropractor"
    },
    {
      "SpecialityID": 3,
      "SpecialityName": "Primary Care Doctor"
    }
  ]
}

控制器文件:

public function index(){
      $data= json_decode(file_get_contents('some_url'));
      $this->load->view('my_view',$data);
}

以上代码不起作用,因为在视图中我无法访问嵌套对象属性。但是我可以像这样在控制器文件中回显 JSON 属性:

控制器文件:

public function index(){

     $data=json_decode(file_get_contents('some_url'));
     foreach ($data as $key=>$prop_name){
        for($i=0;$i < count($prop_name);$i++){
          echo $prop_name[$i]->SpecialityID;
          echo $prop_name[$i]->SpecialityName;
        }
     }
}

我的问题是如何将此 JSON 传递给视图,以及如何访问视图文件中的这些属性?

【问题讨论】:

  • 您需要将数组中的数据传递给VIEW like ===> $data['myJson'] = json_decode(file_get_contents('some_url')); $this-&gt;load-&gt;view('my_view', $data);
  • 为了更好地理解,您可以查看此链接以读取视图中的数据stackoverflow.com/questions/9446700/…

标签: arrays json codeigniter


【解决方案1】:

在控制器中的变化像

public function index(){
      $data['json_data']= json_decode(file_get_contents('some_url'));
      $this->load->view('my_view',$data);
}

在视图中

echo "<pre>";print_r($json_data);

【讨论】:

    【解决方案2】:

    根据Docs

    数据通过数组从控制器传递到视图或 一个对象在视图加载方法的第二个参数中。

    这是一个使用数组的示例:

    所以你需要在控制器中更改你的代码

    Controller.php

    $data = array();
    $data['myJson'] = json_decode(file_get_contents('some_url'));
    $this->load->view('my_view',$data);
    

    my_view.php

    <html>
    ....
    <?php 
    //Access them like so
    print_r($myJson);
    // Rest of your code here to play with json 
    ?>
    ....
    </html>
    

    【讨论】:

    • shukran :-) @Sidra
    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 2011-09-09
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多