2014-12-18 40 views
-2

我有一個模型,它返回已登錄到網站的人的用戶名到控制器。我試圖將用戶名保存到一個變量,我可以用戶然後插入到另一個表,但我沒有運氣保存數據。以下是我的模型和控制器類。商店模型函數返回到控制器功能

型號:我控制器

function is_loggedin() 
{ 
$session_id = $this->session->userdata('session_id'); 
$res = $this->db->get_where('logins',array('session_id' => $session_id)); 

if ($res->num_rows() == 1) { 
    $row = $res->row_array(); 
    return $row['name']; 
} 
else { 
    return false; 
} 
} 

部分:

public function index() 
{ 
$loggedin = $this->authlib->is_loggedin(); 

if ($loggedin === false) 
    $this->load->view('login_view',array('errmsg' => '')); 
else 
{ 

    $this->load->view('postquestion_view',array('username' => $loggedin)); 
    $user = $loggedin['username']; 
} 
} 



    public function askquestion() 
{ 

$qtitle = $this->input->post('title'); 
$qdetails = $this->input->post('details'); 
$qtags = $this->input->post('tags'); 
$qcategory = $this->input->post('category'); 
$quser = $user; 

錯誤:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: user 

Filename: controllers/postq.php 

Line Number: 47 
+0

請大聲讀出您的控制器並重新執行問題。 (如果'$ loggedin'是'FALSE'呢?) – Kyslik

+0

@Kyslik這就是我最初的代碼(見編輯)。在索引函數中 – Jacob

回答

0

這裏的錯誤信息是非常明確的。函數-action- askquestion()代碼片段的最後一行中的變量$user未定義。基本上,你必須閱讀更多關於variables scope

在您當前的情況下,索引操作的代碼應該在constructor之內,變量user應該是對象屬性。即它應該在您的控制器類中全局定義,然後從構造函數中獲取其值,如下面的一般演示:

<?php 
class Blog extends CI_Controller { 

     public $user = false; 
     public function __construct() 
     { 
      parent::__construct(); 
      // Your own constructor code 
     } 

     public function askquestion() 
     { 

       $qtitle = $this->input->post('title'); 
       $qdetails = $this->input->post('details'); 
       $qtags = $this->input->post('tags'); 
       $qcategory = $this->input->post('category'); 
       $quser = $this->user; //NOTICE THIS LINE 
} 
?>