我有一个模型,它将登录到网站的人的用户名返回给控制器。我试图将用户名保存到一个变量,我可以用户然后插回另一个表,但是我没有运气保存数据。下面是我的模型和控制器类。
型号:
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 :(得分: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
}
?>