存储模型功能返回控制器功能

时间:2014-12-18 22:04:06

标签: php codeigniter undefined

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

型号:

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

1 个答案:

答案 0 :(得分:0)

这里的错误信息非常清楚。函数-action- $user摘要的最后一行中的变量askquestion()未定义。基本上,您必须阅读有关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
}
?>