【问题标题】:Calling controller methods from inside view in Codeigniter在 Codeigniter 中从内部视图调用控制器方法
【发布时间】:2017-06-08 06:15:11
【问题描述】:

有没有办法使用 codeigniter 从我们的视图中调用控制器内部的方法。我知道这是一种不好的做法,但是现在我强制这样做。谢谢

【问题讨论】:

  • 你不能只重构你认为需要重用的代码并将其放在其他地方吗?比如在你的控制器中?
  • 看看你到底想做什么会很有趣。
  • 还想知道您正在尝试做什么,因为这将有助于解决方案
  • 我需要它,因为我有两个视图(合同视图和发票),并且需要循环中来自控制器(合同发票)变量的相同输出。在控制器中拥有一个函数似乎比在全局的实用程序助手中更具逻辑性。

标签: php codeigniter


【解决方案1】:

如果要调用当前控制器的某个函数,必须通过这种方式获取当前控制器的实例:

<?php
$CI =& get_instance();
$CI->your_method($param);
?>

【讨论】:

    【解决方案2】:

    你可以这样做:

    $this->controller_method();
    

    虽然这可能会回答你的问题,但我个人同意 Matthew J Morrison 和 DamienL 的观点。

    【讨论】:

    • 别以为这样行不通,$this不是指视图中的Loader类吗?
    【解决方案3】:

    在控制器中:

    $this->method_call =& get_instance(); 
    

    在视图中

    $this->method_call->show();
    

    【讨论】:

      【解决方案4】:

      在你的控制器里放

      $data['myClass'] = $this;
      

      这样当你将数据发送到视图时,它会加载控制器:)

      然后你可以访问类似的方法

      $myClass->method();
      

      【讨论】:

        猜你喜欢
        • 2013-07-02
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多