如何使用Codeigniter在视图页面中调用自定义函数

时间:2017-09-26 12:05:51

标签: php codeigniter

如何使用Codeigniter在视图文件中调用我自己的函数?

我有一个功能:

function hoursToSeconds($ hour){// $ hour必须是字符串类型:" HH:mm:ss"     $ parse = array();

if (!preg_match ('#^(?<hours>[\d]{2}):(?<mins>[\d]{2}):(?<secs>[\d]{2})$#',$hour,$parse)) {
     // Throw error, exception, etc
     throw new RuntimeException ("Hour Format not valid");
}

 return (int) $parse['hours'] * 3600 + (int) $parse['mins'] * 60 + (int) $parse['secs'];

}

我刚刚调用了这个函数$sum += hoursToSeconds($rec['emp_late']);,但它没有用。

这可能是什么问题?

2 个答案:

答案 0 :(得分:1)

最好的方法是使用助手

https://www.codeigniter.com/userguide3/general/helpers.html

CodeIgniter助手是一个具有多个功能的PHP文件。

让我们在 application / helpers / 中创建助手说hour_helper.php,粘贴你的函数

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

if ( ! function_exists('hoursToSeconds'))
{
   function hoursToSeconds ($hour) { // $hour must be a string type: "HH:mm:ss"
    $parse = array();

    if (!preg_match ('#^(?<hours>[\d]{2}):(?<mins>[\d]{2}):(?<secs>[\d]{2})$#',$hour,$parse)) {
         // Throw error, exception, etc
         throw new RuntimeException ("Hour Format not valid");
    }

     return (int) $parse['hours'] * 3600 + (int) $parse['mins'] * 60 + (int) $parse['secs'];
  }
}

加载助手

这可以在控制器模型视图(不可取)

// load helper 
$this->load->helper('hour_helper');

// to test 
echo hoursToSeconds('10:20:23');

如果要在多个模块/控制器/模型之间共享此帮助程序,请通过将其添加到自动加载配置文件(即path/to/application/config/autoload.php)自动加载。

$autoload['helper'] = array('hour_helper');

在您的情况下,在控制器中加载助手,然后在视图中调用它

答案 1 :(得分:0)

检查hoursToSeconds()的参数格式是否正确 HH:mm:ss