0

我希望这是可能的

我可以将参数传递给 CORE/MY_Controller 中的函数吗?

我正在开发一个具有三个控制器的应用程序,并且大多数功能都是相同的,所以我想编写函数代码并在需要时在其可敬的控制器中再次使用它们。

像 search_User_Name() 这样的函数将在两个控制器中,如果我可以编写一次代码并重用它,那就太酷了。我目前面临的问题是

  1. MY_Controller.php 与其他控制器不在同一个文件夹中
  2. search_User_Name() 函数必须接收诸如 search_User_Name($var1, $var2) 之类的参数

我在核心文件夹中有一个控制器作为 MY_Controller

class MY_Controller extends CI_Controller{

    public function __construct() {
             parent::__construct();
    }

    public function Testing($var){
     $function_var= $var;
     return $function_var;
   }
}

我在控制器文件夹中有一个控制器作为 Sub_Controller

class Sub_Controller extends MY_Controller{
    public function __construct() {
        parent::__construct();
    }

    public function Show(){
        echo($this->Testing());
    }
}

在我看来

echo anchor('Sub_Controller/Show/Parameter','Pass a parameter');

据我了解,我是在屏幕上获得“参数”一词的配偶。有什么帮助吗?

4

1 回答 1

1

它可以正常工作,但您仍然需要传入参数:

class Sub_Controller extends MY_Controller {
    public function Show($arg = null) {
        echo($this->Testing($arg));
    }
}

或者,您可以从基本函数中读取 URI 段,但是您的控制权较少:

class MY_Controller extends CI_Controller {
    public function Testing() {
        $function_var = $this->uri->segment(2);
        return $function_var;
   }
}
class Sub_Controller extends MY_Controller {
    public function Show() {
        echo($this->Testing()); // prints the argument in the URL
    }
}

最好用第一种方法。

于 2013-06-11T17:05:05.397 回答