【问题标题】:Using helper function inside a Core Class in CodeIgniter在 CodeIgniter 的核心类中使用辅助函数
【发布时间】:2012-11-21 06:32:02
【问题描述】:

我想在核心类 CI_Router(更准确地说是 MY_Router)中使用一个助手。在这个自定义路由器中,我对原始代码进行了一些修改,以便能够在我的网址中插入连字符。 像往常一样,我已经在 autoload.php 文件中定义了助手,但似乎我不能在视图或控制器以外的类中调用助手函数。

关于如何处理这个问题的任何想法?我最初的方法是使用一个助手,这样我就可以在任何我想要的地方重复使用它。

TYVM。

【问题讨论】:

    标签: codeigniter helpers


    【解决方案1】:

    在核心之后才实例化助手,因此它不起作用。

    您必须:

    1. MY_Router 类中复制函数,或者,
    2. 重新思考为什么您可能会在路由器中使用与在标准控制器或视图中使用相同的功能。

    选项 1 显然更容易,但可能不是更可取,具体取决于您的强迫症有多严重。

    【讨论】:

    • 好的...我想,第一个选择现在就可以了,因为我很着急。但是很高兴知道有更好的方法可以做到这一点。谢谢。
    • 看看ellislab.com/codeigniter/user-guide/general/hooks.html - 你可能可以使用pre_system 钩子,但你将无法访问任何 CI 东西,所以如果你的函数依赖于其中任何一个,那你就不走运了。
    【解决方案2】:

    您可以尝试获取主 CI 对象的实例并将其设置为变量,然后使用该变量加载帮助程序。例如:

    $ci =& get_instance();
    $ci->load->helper('date');
    

    我知道这适用于其他领域,但不能 100% 确定任何路由器类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-23
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 2015-11-09
      • 1970-01-01
      相关资源
      最近更新 更多