Php 如何在codeigniter中使用从一个控制器到另一个控制器的公共方法?

Php 如何在codeigniter中使用从一个控制器到另一个控制器的公共方法?,php,codeigniter,Php,Codeigniter,我有两个控制器,Listes.php和Campagnes.php。我想在campagnes的方法中使用Listes控制器的方法,可能吗?有可能传递一些参数给它吗 我使用代码点火器3 我尝试了一些我在这里找到的答案,但没有一个有效 我还在campagnes.php控制器中添加了以下内容: include_once (dirname(__FILE__) . "/Listes.php"); class Campagnes extends Listes { publi

我有两个控制器,Listes.php和Campagnes.php。我想在campagnes的方法中使用Listes控制器的方法,可能吗?有可能传递一些参数给它吗

我使用代码点火器3

我尝试了一些我在这里找到的答案,但没有一个有效

我还在campagnes.php控制器中添加了以下内容:

    include_once (dirname(__FILE__) . "/Listes.php");

     class Campagnes extends Listes {

       public function listes_recap()
       {
         $result = parent::add($parameter1, $parameter2);
       }

      }   
    class Listes extends CI_Controller {

     public function add($parameter1, $parameter2)
     {
       code here...
     }

    }
在Listes.php控制器中:

    include_once (dirname(__FILE__) . "/Listes.php");

     class Campagnes extends Listes {

       public function listes_recap()
       {
         $result = parent::add($parameter1, $parameter2);
       }

      }   
    class Listes extends CI_Controller {

     public function add($parameter1, $parameter2)
     {
       code here...
     }

    }

提前感谢您的帮助。

有几种方法可以实现您想要的结果。但是,从另一个控制器调用一个控制器不是一个好办法。“最佳”方法取决于两个控制器将使用的函数中实际发生的情况

第一种方法是创建一个“助手”,每个控制器将加载并使用它

文件:/application/helpers/list\u add\u helper.php

defined('BASEPATH') OR exit('No direct script access allowed');

if ( ! function_exists('add'))
{
    function add($parameter1, $parameter2)
    {
       code here...
    }
}
class List_adder
{
    public function add($parameter1, $parameter2)
    {
       //code here
    }
}
像这样在控制器中使用它

$this->load->helper('list_add');
$result = add($one, $two);
第二种方法是创建自定义库(类)

文件:/application/libraries/List_adder.php

defined('BASEPATH') OR exit('No direct script access allowed');

if ( ! function_exists('add'))
{
    function add($parameter1, $parameter2)
    {
       code here...
    }
}
class List_adder
{
    public function add($parameter1, $parameter2)
    {
       //code here
    }
}
用于任何控制器

$this->load->library('list_adder');
$result = $this->list_adder->add($one, $two);

如果您需要在自定义库中使用CI代码,您还有一些工作要做。阅读所有相关内容。

有几种方法可以实现您想要的结果。但是,从另一个控制器调用一个控制器不是一个好办法。“最佳”方法取决于两个控制器将使用的函数中实际发生的情况

第一种方法是创建一个“助手”,每个控制器将加载并使用它

文件:/application/helpers/list\u add\u helper.php

defined('BASEPATH') OR exit('No direct script access allowed');

if ( ! function_exists('add'))
{
    function add($parameter1, $parameter2)
    {
       code here...
    }
}
class List_adder
{
    public function add($parameter1, $parameter2)
    {
       //code here
    }
}
像这样在控制器中使用它

$this->load->helper('list_add');
$result = add($one, $two);
第二种方法是创建自定义库(类)

文件:/application/libraries/List_adder.php

defined('BASEPATH') OR exit('No direct script access allowed');

if ( ! function_exists('add'))
{
    function add($parameter1, $parameter2)
    {
       code here...
    }
}
class List_adder
{
    public function add($parameter1, $parameter2)
    {
       //code here
    }
}
用于任何控制器

$this->load->library('list_adder');
$result = $this->list_adder->add($one, $two);

如果您需要在自定义库中使用CI代码,您还有一些工作要做。阅读所有内容。

从另一个控制器调用一个控制器方法不是一个好的编程策略

从另一个控制器调用一个控制器方法不是一个好的编程策略

您尝试过$this->add($parameter1,$parameter2)?您是否尝试过$this->add($parameter1,$parameter2)?