从控制器传递数据数组到查看Codeigniter

时间:2017-12-08 08:47:57

标签: php arrays codeigniter

我正在尝试简化我的菜单,我将进入我的视图,问题是菜单和子菜单未激活。这是我的控制者:

parent::__construct();
    $this->menu = array(
      'menu'    => 'definition',
      'submenu' => 'workplace'
    );

我的控制器方法中有这个:

$data = array(
    $this->menu, // menu is right here
    'list_workplace_type' => get_wp_type()->result_array()
  );
var_dump($data);die;
$this->load->view('wp', $data);

结果如下:

array (size=2)
  0 => 
    array (size=2)
      'menu' => 'definition'
      'submenu' => 'workplace'
  'list_workplace_type' => 
    array (size=2)
      0 => 
        array (size=1)
          'szWorkplaceTypeName' => 'Kantor Pusat'
      1 => 
        array (size=1)
          'szWorkplaceTypeName' => 'Kantor Cabang'

我的期望更像是这样:

array (size=2)
  'menu' => 'definition'
  'submenu' => 'workplace'
  'list_workplace_type' => 
    array (size=2)
      0 => 
        array (size=1)
          'workplaceTypeName' => 'Kantor Pusat'
      1 => 
        array (size=1)
          'workplaceTypeName' => 'Kantor Cabang'

我使用了 array_push(),但仍然无法正常工作。

2 个答案:

答案 0 :(得分:1)

我的理解是您尝试将“list_workplace_type”添加为Menu数组中的另一个键,因此您需要更改此

$data = array(
    $this->menu, // menu is right here
    'list_workplace_type' => get_wp_type()->result_array()
  );

$data = $this->menu['list_workplace_type'] = get_wp_type()->result_array();

然后你可以传递给视图

$this->load->view('wp', $data);

答案 1 :(得分:0)

我必须假设 get_wp_type()是辅助函数。

您已使用 $ result-> result_array(),它会为您提供观察到的结果。

您需要使用的是 $ result-> row_array(),它会为您提供您期望的结果。

所以

$data = array(
    $this->menu, // menu is right here
    'list_workplace_type' => get_wp_type()->result_array()
  );

变为

$data = array(
    $this->menu, // menu is right here
    'list_workplace_type' => get_wp_type()->row_array()
  );

在codeigniter用户指南中查找它们。这是一个很好的习惯。