笨,访问控制器

问题描述:

我在模型下面的代码:笨,访问控制器

<?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']

谢谢!

,如果你想从数组$dataprice您正在返回两个级别的阵列,只是这样做在你的控制器:

$data = $this->route_model->getRoute($date); 
$price = $data['route']['price']; 

请注意,您的阵列不能很好地形成原因你有反复按键,这可能会导致问题

+0

未定义变量'date'...:/ –

+0

'$ date'是你在'route_model'上定义的变量......只有你知道它应该包含什么 – David

+0

谢谢大卫! + –

因为你改写键此数组不会有任何效果,我想你会希望下面的数组:

$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参数做的事情?从现在开始,它看起来并没有被使用,除非你剥离了一些代码。

+0

谢谢+1 @killstreet:D –