簡體   English   中英

從Codeigniter中的另一個控制器獲取數據

[英]Get data from another controller in Codeigniter

我有兩個控制器,get.php和insert.php。 我不確定codeigniter的工作方式,但我也有get_model.php和insert_model.php。 我想從insert.php中的get.php調用控制器方法並從那里處理數據,但最終我得到的是某種對象,該對象顯然具有數據,但我不確定如何訪問它。

我試着只為那個函數添加代碼,並創建一個我從中調用方法的對象。

<?php
class get extends CI_Controller {


  public function __construct() {
    parent::__construct();
    $this->load->model('get_model');
  }

    public function get_mtb_kvadrants(){
      $rez = $this->get_model->get_mtb_kvadranti();
      //return array("data" => $rez);
      $this->load->view("json", array("data" => $rez)); 
      //return $rez;
    }
}
?>
<?php

class get_model extends CI_Model {

  public function __construct() {
    $this->load->database();
  }
  public function get_mtb_kvadranti(){
    $this->db->from('mtb_kvadranti');
    $query = $this->db->get();
    return $query->result_array();
  }

}
?>

insert.php中的調用


    require_once('/var/www/website/backend/get.php'); //include controller
    $aObj = new get();  //create object 
    $aObj->get_mtb_kvadrants(); //call function
    var_dump($aObj);

我得到了很多東西,但這是至關重要的東西,這是我得到的一個對象,否則codeigniter內部還有很多引用的對象:

 &object(CI_Loader)#14 (25) {
   ["_ci_ob_level":protected]=>
   int(1)
   ["_ci_view_paths":protected]=>
   array(1) {
     ["/var/www/website/backend/application/views/"]=>
     bool(true)
   }
   ["_ci_library_paths":protected]=>
   array(2) {
     [0]=>
     string(57) "/var/www/website/backend/application/"
     [1]=>
     string(73) "/var/www/website/vendor/codeigniter/framework/system/"
   }
   ["_ci_model_paths":protected]=>
   array(1) {
     [0]=>
     string(57) "/var/www/website/backend/application/"
   }
   ["_ci_helper_paths":protected]=>
   array(2) {
     [0]=>
     string(57) "/var/www/website/backend/application/"
     [1]=>
     string(73) "/var/www/website/vendor/codeigniter/framework/system/"
   }
   ["_ci_cached_vars":protected]=>
   array(1) {
     ["data"]=>
           array(666) {
       [0]=>
       array(2) {
         ["id"]=>
         string(1) "2"
         ["kvadrant"]=>
         string(6) "0046/2"
       }
       [1]=>
       array(2) {
         ["id"]=>
         string(1) "3"
         ["kvadrant"]=>
         string(6) "0047/1"
       }
       [2]=>
       array(2) {
         ["id"]=>
         string(1) "4"
         ["kvadrant"]=>
         string(6) "0047/2"
       }`

我想要得到的是一個數組,該數組可以在insert.php中處理

嘗試使用內置的Codeigniter get_vars()公共方法,該方法允許您讀取_ci_cached_vars的值:

var_dump($aObj->load->get_vars());

get_var()(如果使用鍵):

var_dump($aObj->load->get_var('data'));

您不能從另一個呼叫一個控制器! CodeIgniter不能那樣工作。

看來您有兩種模型-一種用於“獲取”,一種用於“插入”。 您應該使用兩種方法來創建一個模型,例如get()insert() 您可以在需要使用任何一種方法的任何控制器中加載該模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM