【问题标题】:How to save and access reusable data arrays in codeigniter?如何在codeigniter中保存和访问可重用的数据数组?
【发布时间】:2011-07-11 07:53:28
【问题描述】:

我对 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);

我不确定是否需要为此或其他东西创建帮助器?

感谢观看

【问题讨论】:

    标签: php codeigniter dry code-reuse


    【解决方案1】:

    仍然不完全确定您要完成什么,但通常在过去,对于我需要在项目中多次使用的下拉内容,我将在帮助程序中包含值。

    像这样……

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

    【讨论】:

    • 您好,感谢您抽出宝贵时间回答。不过,我对您的回答有一个简短的问题……在我的控制器内部而不是在我的函数内部使用“开关”并使用 $data = dropdown_values('numeric') 调用辅助函数对我有什么好处吗?
    • 不,实际上我几乎是这么建议的,但这都是基于您的具体使用情况,我对您的应用程序的具体情况还有些不清楚,如果它更适合您,那就去吧!
    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2013-07-07
    • 2021-07-23
    • 2012-09-23
    相关资源
    最近更新 更多