我正在尝试将数据从API解析到我网站上的视图。 当我将脚本直接放到索引上时,只是为了测试,它返回:
array(2)
{
["status"]=> int(1)
["categories"]=> array(2)
{
[0]=> array(2)
{
["id"]=> string(1) "5"
["name"]=> string(19) "Pensionar / Veteran"
}
[1]=> array(2)
{
["id"]=> string(1) "6"
["name"]=> string(14) "Alta categorie"
}
}
}
这就是我的模型的样子:
public function getPassengerCategories()
{
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api_link");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$parsed_json = curl_exec($ch);
$parsed_json = json_decode($parsed_json, true);
$data = $parsed_json;
return $data;
}
catch (Exception $e) {
return $e->getMessage();
}
}
我的控制器看起来像这样:
function getPassengerCategories()
{
$this->load->model('Curse_Interne_Model');
$data = $this->Curse_Interne_Model->getPassengerCategories();
foreach($data as $categories)
{
foreach ($categories as $category)
{
$html = $this->load->view("front/search_box.php", array(
'categories' => $category
), true);
echo json_encode(array("status" => 1, "html" => $html));
}
}
}
我首先尝试检查此数组是否已解析为视图,这就是我的视图的样子:
<?php
$data = array('categories' => $category);
print('<pre>' . print_r($data) . '</pre>');
?>
问题是它返回视图的所有内容都是以下结果:
Array ( [categories] => )
1
知道如何解决这个问题吗?谢谢 !
答案 0 :(得分:1)
$data
上的迭代逻辑错误。这是您的数据:
$data = [
"status" => 1,
"categories" => [
["id" => 5, "name" => "Pensionar / Veteran"],
["id" => 6, "name" => "Alta categorie"],
]
]
现在,如果您想迭代类别并将每个类别传递给视图:
foreach ($data['categories'] as $category) {
$html = $this->load->view('front/search_box', ['categories' => $category], true);
echo json_encode(["status" => 1, "html" => $html]);
}
整体逻辑似乎对我不利;你不会在foreach循环中回应JSON响应。无论如何,无论你的逻辑是什么,你都需要更加关注你的数据结构格式。
另外,请阅读这些资源以改进您的代码:
$this->load->view()
不需要.php
扩展名curl_*
来电dd()
代替print_r()