存储模型函数返回到控制器函数


Store model function return to controller function

我有一个模型,它将登录网站的人的用户名返回给控制器。我正在尝试将用户名保存到一个变量中,然后我可以将其插入回另一个表中,但是我没有保存数据。下面是我的模型和控制器类。

型:

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

这里的错误消息非常清楚。未定义函数 -action- askquestion()代码段最后一行中的变量$user。基本上,您必须阅读有关变量范围的更多信息。

在您当前的情况下,索引操作的代码应该在构造函数中,变量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
}
?>