这是我的控制器
public function showCategoryJson(){
$this->load->model('user/category_model');
$data[] = $this->category_model->displayCategory();
echo json_encode($data);
}
我的模特
function displayCategory(){
$query = $this->db->get('categories');
$res = $query->result_array();
return $res;
}
和我的视图
<?php
$url = site_url('user/category/showCategoryJson'); // path to your JSON file
$data = file_get_contents($url); // put the contents of the file into a variable
// echo $data;
$results = json_decode($data); // decode the JSON feed
foreach ($results as $key => $cat) {
?>
<tr class="odd gradeX">
<td><?php echo $cat[$key]->categoryname; ?></td>
<td><?php echo $cat[$key]->username; ?></td>
<td class="center"><a class="btn btn-success fa fa-edit"></a> <a class="btn btn-danger fa fa-trash delete" id="<?php echo $cat[$key]->categoryid; ?>"></a></td>
</tr>
<?php } ?>
答案 0 :(得分:0)
您可以使用:
json_decode($data,true);
当 TRUE 时,返回的对象将被转换为关联数组。
答案 1 :(得分:0)
您可以开始的一种方式&#34;调试&#34;实际上是打印出$ results的内容。 在foreach循环之前尝试以下操作:
print_r($results);
结果会显示类似的内容:
数组([0] =&gt;数组([0] =&gt; stdClass对象([categoryid] =&gt; 10 [categoryname] =&gt; sdf [用户名] =&gt;冰柱)[1] =&gt; stdClass对象([categoryid] =&gt; 12 [categoryname] =&gt; ase [username] =&gt;冰柱)[2] =&gt; stdClass对象([categoryid] =&gt; 23 [categoryname] =&gt; aser [用户名] =&gt;冰柱)))sdf冰柱
这意味着json内容已被解码为嵌套数组。
您可以尝试添加&#34; true&#34; json_decode函数的参数,并将变量作为数组访问。
$ results = json_decode($ data,true); //解码JSON提要
完整代码:
<?php
$url = site_url('user/category/showCategoryJson'); // path to your JSON file
$data = file_get_contents($url); // put the contents of the file into a variable
$results = json_decode($data,true); // decode the JSON feed
foreach ($results[0] as $key => $cat) {
?>
<tr class="odd gradeX">
<td><?php echo $cat['categoryname']; ?></td>
<td><?php echo $cat['username']; ?></td>
<td class="center"><a class="btn btn-success fa fa-edit"></a> <a class="btn btn-danger fa fa-trash delete" id="<?php echo $cat['categoryid']; ?>"></a></td>
</tr>
<?php } ?>
编辑:要将数据从控制器传递到视图,您可以将模型的结果分配给变量,然后指示控制器加载视图以及您已将数据存储到的变量
例如,在您的控制器中,您可以更改以下内容:
public function showCategoryJson(){
$this->load->model('user/category_model');
$data['category_data'] = $this->category_model->displayCategory();
$url = site_url('user/category/showCategoryJson'); // path to your JSON file
$json_data = file_get_contents($url); // put the contents of the file into a variable
$data['results'] = json_decode($json_data,true); // decode the JSON feed
$this->load->view('[YOUR_VIEW_NAME]',$data);
}
然后,您可以在视图中使用$ category_data和$ results。