2011-08-12 80 views

回答

1

你不能從一個模型到控制器傳遞變量。 您可以通過控制器訪問模型的公共變量。

echo $this->model_name->variable_name;
+0

那麼我需要在控制器上訪問的變量是電子郵件的$ userID和$ verifyHash變量。我已經包含了這兩個文件。如何讓這兩個變量公開。更好的問題是,我是否在模型頁面上設置了編碼,以便公開變量。 –

+0

@ jeff-davidson你只需要在模型/類中添加公共變量聲明。

 class Model extends IR_Model { public var $userID; public var $verifyHash; public function __construct(){ } // your code here } 
sepidol

3

這是從你的問題不清楚,正是你想做的事。

如果是有關訪問模特屬性,正確的方法是使用存取方法:

class Model extends CI_Model{ 
    private $name; 

    public function getName() {return $this->name; /*any other logic here*/} 
    public function setName($value) {$this->name= $value; /*any other logic here*/} 
} 
1

模型(my_model)

function useful_info() 
{ 
    $data = new stdClass(); 
    $q = $this->db->get('users'); 
    $data->users = $this->db->result(); 
    $data->date = date('Y-m-d'); 
    $data->info = array('whatever','more','anything'); 
    return $data; 
} 

控制器

function index() 
{ 
    $info = $this->my_model->useful_info(); 
    foreach($info->users as $user) 
    { 
     echo $user->id; 
    } 
    echo $info->date; 
    if($info->info[0] == 'whatever') 
    { 
     // do something 
    } 
} 

不必創建一個對象(它可以是一個字符串,T/F,陣列等) ,但通常需要從模型和庫函數返回。你可以通過返回一個變量來訪問你返回的東西$info = $this->my_model->useful_info();

+0

那麼我需要在控制器上訪問的變量是電子郵件的$ userID和$ verifyHash變量。我已經包含了這兩個文件。如何讓這兩個變量公開。更好的問題是,我是否在模型頁面上設置了編碼,以便公開變量。 –

+0

@ sepidol有這個任務:'echo $ this-> user_model-> userID;'。是的,您的變量設置爲可用於控制器,但是當您在模型函數中修改它們時,您需要正確地確定它們的範圍:$ this-> userID ='my new value';' – permawash

+0

咦?我不知道你的意思?我很困惑。我把什麼放在哪裏? –

相關問題