代码点火器:从控制器访问数组元素

时间:2013-07-29 01:57:01

标签: arrays codeigniter

我已经在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中工作

有人能告诉我该怎么做吗?

2 个答案:

答案 0 :(得分:0)

创建一个全局变量并将数据分配给它..

  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);
   }

 }

答案 1 :(得分:0)

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

以下是可能的方法,我可以建议:

1)声明会话变量并使用。(不是非常有效的) 2)在配置文件中声明变量。(首选,可能只是为你做的技巧)。

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

- seekers01