Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我是使用助手、库还是将日期选择器代码放在codeigniter的模型中?_Php_Codeigniter_Codeigniter Helpers - Fatal编程技术网

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

Php 我是使用助手、库还是将日期选择器代码放在codeigniter的模型中?,php,codeigniter,codeigniter-helpers,Php,Codeigniter,Codeigniter Helpers,这是我的密码: //Setup days $data['days']['FALSE'] = 'Day'; //Setup months $data['months'] = array('FALSE' => 'Month', '1' => 'Jan', '2' => 'Feb', '3' => 'Mar', '4' =>

这是我的密码:

//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;
}
以下是我在视图中的表单中对应的代码:

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

生日:

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

我做了一些研究,想知道让我的datepicker成为一个助手“datepicker\u helper.php”是否更好,把代码放在那里,然后加载到我的控制器中

这是最好的方法吗

如果是这样的话,有人能给我举个例子说明我是如何做到这一点的吗?如果有别的办法,有人能告诉我吗


提前谢谢。。我是来学习的。

一个助手听起来最适合这个。要做到这一点,请看

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

  • 有一个完全独立的php文件,比如My_Utils.php
  • 在其中创建一个充满静态函数的类(如果>=PHP5.3,则使用名称空间)
  • 这样做是为了确保没有在任何框架/其他代码中定义函数
  • 在任何CodeIgniter初始化/路由之前,将其包含在CodeIgniter的index.php中
  • 通过这种方式,它们可以在其所有代码库(控制器、视图)中使用
  • 根据需要使用它们
  • 将其保存在每个web服务器的中心位置,以便于维护和包含
在这种情况下,
form_下拉列表
只是上述文件中的一个静态函数:

class My_Utils {

    public static function form_dropdown($param1, $param2) {

    }

}
你会用它:

echo My_Utils::form_dropdown('days',$days)

助手听起来似乎最适合于此。要做到这一点,请看

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

  • 有一个完全独立的php文件,比如My_Utils.php
  • 在其中创建一个充满静态函数的类(如果>=PHP5.3,则使用名称空间)
  • 这样做是为了确保没有在任何框架/其他代码中定义函数
  • 在任何CodeIgniter初始化/路由之前,将其包含在CodeIgniter的index.php中
  • 通过这种方式,它们可以在其所有代码库(控制器、视图)中使用
  • 根据需要使用它们
  • 将其保存在每个web服务器的中心位置,以便于维护和包含
在这种情况下,
form_下拉列表
只是上述文件中的一个静态函数:

class My_Utils {

    public static function form_dropdown($param1, $param2) {

    }

}
你会用它:

echo My_Utils::form_dropdown('days',$days)

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

首先,你让自己陷入了一种虚假的安全感。有界选择元素不能也不会保证每个请求都包含有效日期。永远不要相信输入。始终验证。使用您自己的日期验证函数扩展Form_验证类

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


在我理解了这两件事之后,我从我的网站上重构了它。现在,我的日期字段是输入型文本,带有一个标签,指定日期的预期格式。我的Form_验证类扩展为验证日期字段。而且我已经添加到我的表单中。

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

首先,你让自己陷入了一种虚假的安全感。有界选择元素不能也不会保证每个请求都包含有效日期。永远不要相信输入。始终验证。使用您自己的日期验证函数扩展Form_验证类

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


在我理解了这两件事之后,我从我的网站上重构了它。现在,我的日期字段是输入型文本,带有一个标签,指定日期的预期格式。我的Form_验证类扩展为验证日期字段。我已经添加到我的表单中。

我将如何在助手的方式下完成此操作。。我已经创建了我的助手,并将其加载到我的控制器中,但一直收到未定义的变量消息。我的观点调用了helperI中的变量。我恐怕我没有使用CodeIgniter的经验,只有Kohana2,所以我无法对可能出现的问题做出有根据的猜测。如果你发布了你的帮助文件,以及关于未定义变量的确切PHP错误,我可能能够提供进一步的帮助。我将如何在帮助程序中实现这一点。。我已经创建了我的助手,并将其加载到我的控制器中,但一直收到未定义的变量消息。我的观点调用了helperI中的变量。我恐怕我没有使用CodeIgniter的经验,只有Kohana2,所以我无法对可能出现的问题做出有根据的猜测。如果你发布了你的帮助文件以及关于未定义变量的确切PHP错误,我可能能够进一步提供帮助。谢谢,我没有意识到这个答案已经发布了。我重新开始,去掉了那个密码。谢谢,我不知道这个答案被贴出来了。我重新开始,去掉了那个密码。