2013-07-29 68 views
0

我已经在CI中编写了这个函数,并且由于各种原因,我需要将数组的内容分配给变量以便稍后在控制器中使用。代码点火器:从控制器访问数组元素

由于这种遗留代码的设置方式,我需要从控制器访问数组的元素。如何从下面的函数获取$ data ['oneResult']中的数组元素。我已经尝试了一些像element()助手一样的东西。什么都没有在调试模式下,我看到了我所需要的数据,并在这一点上,我需要分配,所以我想这样做:

$holdID = $data['oneResult']['contact_id']; 
$holdLoc = $data['oneResult']['location']; etc. 


public function getOneValue(){ 
    $this->load->model('get_contents'); 
    $data['oneResult'] = $this->get_contents->getSpecificRow(); 
    $data['title'] = 'One Record - Contacts table view'; 
    $this->load->view('contacts_view', $data); 
} 

我在CI 2测试这一点,但需要它的工作在CI 1.7

任何人都可以告诉我如何做到这一点吗?

回答

0

使全球variablw和数据分配给它..

class something extend CI_controller{ 
    var $holdID =''; 
    var $holdLoc = ''; etc. 

    public function __construct() { 
     .... 
    } 
    public function index(){ 
     ... 
    } 

    public function getOneValue(){ 
     $this->load->model('get_contents'); 
     $data['oneResult'] = $this->get_contents->getSpecificRow(); 
     $this->holdID = $data['oneResult']['contact_id']; //<----here assing value to global var 
     $this->holdLoc = $data['oneResult']['location']; //<--here 
     $data['title'] = 'One Record - Contacts table view'; 
     $this->load->view('contacts_view', $data); 
    } 

} 
0

我想你想你正在访问控制器下一次的数据是可用的。 在这种情况下,由于codeigniter的体系结构和功能,全局变量将不会保留该值。

这里有可能的方法,我可以建议:

1)声明会话变量和使用(不是一个非常有效的一个) 2)在配置文件中声明的变量(首选和可能只是做的伎俩。为你)。

如果以上两者中的任何一个都无法解决您的问题,请详细说明您的使用案例。
会给它一个新的尝试。

- 寻求者01