代码之家  ›  专栏  ›  技术社区  ›  LondonGuy

我是使用助手、库还是将日期选择器代码放在codeigniter的模型中?

  •  1
  • LondonGuy  · 技术社区  · 15 年前

    这是我的密码:

    //Setup days
     $data['days']['FALSE'] = 'Day';
    
     //Setup months
     $data['months'] = array('FALSE' => 'Month',
                     '1'  => 'Jan',
                     '2'  => 'Feb',
                     '3'  => 'Mar',
                     '4'  => 'Apr',
                     '5'  => 'May',
                     '6'  => 'Jun',
                     '7'  => 'Jul',
                     '8'  => 'Aug',
                     '9'  => 'Sep',
                     '10' => 'Oct',
                     '11' => 'Nov',
                     '12' => 'Dec'
                    );
    
    
     for($i=1;$i<=31;$i++){
        $data['days'][$i] = $i;
     }
    
     //Setup years
     $start_year = date("Y",mktime(0,0,0,date("m"),date("d"),date("Y")-100)); //Adjust 100 to however many year back you want
     $data['years']['FALSE'] = 'Year';
    
     for ($i=$start_year;$i<=date("Y");++$i) {
        $data['years'][$i] = $i;
    }
    

    下面是我的if声明:

    if($this->form_validation->run()){
        $month = $this->input->post('months');
        $day = $this->input->post('days');
        $year = $this->input->post('years');
    
        $birthday = date("m-d-Y H:i:s",mktime(0,0,0,$month,$day,$year));
     } 
    

    以下是我在视图中窗体中的相应代码:

       <p>
            <label for="birthday">Birthday: </label>
            <?php echo form_dropdown('days',$days). " " . form_dropdown('months',$months). " " . form_dropdown('years',$years); ?>
        </p>
    

    当我将datepicker代码直接放在我的控制器中时,我窗体上的下拉列表会正确显示。我希望我的代码整洁,所以决定创建一个模型,并试图从我的控制器调用,但我得到了未定义的变量错误时,我的视图试图显示表单几次。

    我做了一些研究,想知道是否最好让我的日期选择器成为一个助手“日期选择器”_助手.php“把代码放进去,装进我的控制器。

    如果是的话,有人能给我举个例子说明我是怎么做到的吗?如果有别的办法,有人能告诉我吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   coolgeek    15 年前

    包括我在内的许多开发人员都开发了自己的代码版本。我想在这里指出两个问题。

    第二,让用户拉三个下拉列表(没有在所有请求中保证有效日期)是非常糟糕的,尤其是在用户需要填充多个日期(开始日期/结束日期、里程碑日期等)的情况下。

    a real datepicker 我的表格。

        2
  •  0
  •   Community Mohan Dere    8 年前

    一个助手听起来似乎最适合这个。要做到这一点,看看 documentation 还有这个 SO question

    另一方面,我对这些可能在多个框架、应用程序或位置中使用的通用代码所做的工作如下:

    • 有一个完全独立的php文件,比如我的_实用工具.php
    • 在其中创建一个充满静态函数的类(如果>=PHP5.3,则使用名称空间)
    • 您这样做是为了确保您的函数没有在任何框架/其他代码的其他地方定义
    • 这样,它们就可以在整个代码库(控制器、视图)中使用
    • 将其保存在每个web服务器的中心位置,以便于维护和包含

    在这种情况下,你的 form_dropdown

    class My_Utils {
    
        public static function form_dropdown($param1, $param2) {
    
        }
    
    }
    

    你会用它:

    echo My_Utils::form_dropdown('days',$days)
    
    推荐文章