我在模型中有以下代码:
<?php
class Route_Model extends CI_Model
{
function __construct()
{
parent::__construct();
}
public function getRoute($date = array())
{
try {
$data = array(
'route' => array(
'id' => 1,
'name' => 'budapest-athens',
'price' => 150,
'id' => 2,
'name' => 'rome-madrid',
'pret' => 250,
'id' => 3,
'name' => 'belgrade-bucharest',
'price' => 180,
'id' => 4
)
);
return $data;
} catch (Exception $e) {
return $e->getMessage();
}
}
}?>
我想访问控制器中的数组元素。
如何单独访问每个字段?
像$price = $this->data['price']
?
谢谢!
答案 0 :(得分:2)
如果要从数组price
获取$data
,则返回一个包含两个级别的数组,只需在控制器中执行此操作:
$data = $this->route_model->getRoute($date);
$price = $data['route']['price'];
请注意,您的阵列格式不正确,因为您有重复的键,这可能会导致问题
答案 1 :(得分:2)
这个数组永远不会有效,因为你覆盖了键,我想你会想要以下数组:
$data = [
'route' => [
[
'id' => 1,
'name' => 'budapest-athens',
'price' => 150
], [
'id' => 2,
'name' => 'rome-madrid',
'price' => 250
], [
'id' => 3,
'name' => 'belgrade-bucharest',
'price' => 180
]
]
];
接下来,你的try / catch似乎没必要,没有真正的尝试。它是一个硬编码数组,所以除非这实际上会进行一些交互,否则不需要try / catch。
无论如何,要在你的控制器中接收这些数据,你应该这样做:
$this->load->model('Route_model');
$route = $this->Route_model->getRoute();
var_dump($route);
exit;
现在你将拥有这个数组。另一个奇迹,你是否真的试图抓住这个阵列中的所有路线,或者你想用$date
参数做些什么?从现在起,除非你删除了一些代码,否则它看起来并没有被使用。