2011-03-08 109 views
2

我对codeigniter比较陌生,我很难理解如何保存和访问多个控制器的数据,所以想知道这里有人能帮助我理解这一点。如何保存和访问codeigniter中的可重用数据数组?

我需要在codeigniter中创建一个函数,它返回一个数据数组,以便传递给视图并创建一个表单下拉列表。

下面是将在函数中使用的代码

switch($type) { 
case 'text': 
$data = array (
       'equals'  => 'Equals', 
       'notequal'  => 'Does Not Equal', 
       'startswith' => 'Starts With', 
       'endswith'  => 'Ends With', 
       'contains'  => 'Contains', 
       'notcontain' => 'Does Not Contain', 
       ); 
break; 

case 'numeric': 

$data = array (
         'equals'  => 'Equals', 
         'notequal'  => 'Does Not Equal', 
         'less'   => 'Less Than', 
         'greater'  => 'Greater Than', 
         'equalless'  => 'Less Than Or Equal To', 
         'equalgreater' => 'Greater Than Or Equal To' 
         ); 

break; 

case 'date': 

$data = array (
         'equals'  => 'Equals', 
         'notequal'  => 'Does Not Equal', 
         'before'  => 'Before', 
         'after'   => 'After', 
         'equalbefore' => 'Before Or Equal To', 
         'equalafter' => 'After Or Equal To' 
         ); 
break; 
} 

然后我将顺便指出从该函数使用它来创建表格下拉使用以下代码返回到一个视图中的数据阵列:

echo form_dropdown('conditions', $data); 

我不确定是否需要为此或其他内容创建助手?

感谢不清楚自己要完成什么,但一般都在过去的下拉菜单的内容,我需要在一个项目中多次使用寻找

回答

3

不过,我会包含内的值帮手。

这样的...

conditions_helper.php

<? if (! defined('BASEPATH')) exit('No direct script access allowed'); 

if (! function_exists('hotel_types_dropdown')) { 

    function date_dropdown_values() { 

     $data = array (
      'equals'  => 'Equals', 
      'notequal'  => 'Does Not Equal', 
      'before'  => 'Before', 
      'after'   => 'After', 
      'equalbefore' => 'Before Or Equal To', 
      'equalafter' => 'After Or Equal To' 
     ); 

     return $data; 
    } 

,你会继续使用相应的功能名称,以格式化不同的下拉菜单设置。

所以一旦你将它添加到你的autoload.php中,或者把它加载到你想要使用它的控制器中,只需要用date_dropdown_values()来调用它,它会返回你的数组在下拉列表中使用。

在您的控制器

则...

switch($type) { 
    case 'text': 
     $data->dropdown_values = text_dropdown_values(); 
     break; 

    case 'numeric': 
     $data->dropdown_values = numeric_dropdown_values(); 
     break; 

    case 'date': 
     $data->dropdown_values = date_dropdown_values(); 
     break; 
} 

$this->load->view('path/to/view', $data); 

,然后在视图

<?php echo form_dropdown('conditions', $dropdown_values); ?> 
+0

您好,感谢您抽出时间来回答。我有一个关于你的答案的快速问题,尽管......在我的控制器中使用'switch'而不是在我的函数内部,并且使用'$ data = dropdown_values('numeric')调用帮助函数会对我有任何好处。 '? –

+0

不,我其实几乎暗示了这一点,但这都是基于您的具体使用情况,如果您的应用程序更适合您的应用程序,我仍然不清楚您的应用程序的具体情况。 – jondavidjohn

相关问题