[英]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.