2014-12-18 2 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 Вот как я изначально имел свой код (см. edit). В индексной функции – Jacob

ответ

0

Вот сообщение об ошибке очень ясно. Переменная $user в последней строке функции -action-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 
} 
?> 
Смежные вопросы