【问题标题】:Pass a variable defined in a controller to a model under CodeIgniter将控制器中定义的变量传递给 CodeIgniter 下的模型
【发布时间】:2012-12-09 22:57:25
【问题描述】:

我在控制器内部的方法中定义了一个变量,例如

class test extends CI_Controller {
    function tester() {
    $variable = 'value'
    }
}

现在我想在我的模型中调用这个变量。这怎么可能?

编辑:我使用 CodeIgniter。

【问题讨论】:

    标签: php class codeigniter parameter-passing codeigniter-2


    【解决方案1】:

    型号:

    class your_model extends CI_Model {
        var $variable;
    
        function __construct() {
            parent::__construct();
        }
    
        function set_variable($variable) {
            $this->variable = $variable;
        }
    
    }  
    

    控制器:

    class test extends CI_Controller {
        function tester() {
            $this->load->model('your_model');
            $variable = 'value'
            $this->your_model->set_variable($variable); 
        }
    }
    

    【讨论】:

    • 谢谢,如果我删除 var $variable;function __construct() { parent::__construct(); } 它仍然有效。有什么理由使用这些吗?
    • 构造函数 - 仅在您需要时使用。 $variable - 只是一个定义
    【解决方案2】:

    仅供参考 - 如果您需要一个可用于控制器和/或模型中的多个方法的变量 - 您可以在类的“构造函数”中设置它。在变量名前使用 $this->

     class Test extends CI_Controller {
    
     public function __construct() {
    
     parent::__construct();
    
      // Set var in construct  
      $this->variable123 = 'some value 123' ;
    
    } // end construct 
    

    您现在可以从类中的任何位置调用 $this->variable123 并且它将可用。 如果您从此类加载模型,则该模型中的任何方法都可以使用该模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      相关资源
      最近更新 更多