Codeigniter:用户数据未显示在配置文件中

时间:2017-10-03 04:30:42

标签: php codeigniter

我还不熟悉CI,所以请耐心等待。但是我在将数据显示在用户配置文件上时遇到了一些麻烦。

型号:

public function user_data()
{
    $age = $this->session->userdata('age');
    $data = array();
    $this->db->select('*');
    $this->db->from('users');
    $this->db->where('age', $age);
    $query = $this->db->get();

    return $query->row();
}

控制器:

public function user()
{   
    $this->load->model('user_model');
    $data['row'] = $this->user_model->user_data();

    $this->load->view('templates/header');
    $this->load->view('pages/profile', $data);
    $this->load->view('templates/footer');
}

查看:

<h2><?php echo $_SESSION['username'];?>'s Profile</h2>

</br>

<body>

<h4>Age: <?php echo $row['age'];?></h4>

显示用户名,但年龄结果不显示。此时也没有显示任何错误,所以我有点困惑。

4 个答案:

答案 0 :(得分:0)

在行

之后尝试控制器中的echo $this->db->last_query();
 $data['row'] = $this->user_model->user_data(); 

它将帮助您通过活动记录执行实际查询,并通过phpmyadmin

尝试相同的查询

答案 1 :(得分:0)

用户row_array从数据库中获取行数组。

模型

public function user_data()
{
    $age = $this->session->userdata('age');

    $this->db->select('*');
    $this->db->from('users');
    $this->db->where('age', $age);
    $query = $this->db->get();
    $data = $query->row_array(); //<---- Change this
    return $data;
}

哟需要先在控制器中加载模型。

控制器

public function user()
{   
    $this->load->model('user_model');
    $row = $this->user_model->user_data();

    $this->load->view('templates/header');
    $this->load->view('pages/profile', ['row' => $row]); //<--- Try this way
    $this->load->view('templates/footer');
}

视图

<h2><?php echo $_SESSION['username'];?>'s Profile</h2>

</br>

<body>

<h4>Age: <?php echo $row['age'];?></h4>

要获取会话数据,您需要执行以下操作:

这是如何在会话中添加数据的。 示例:在登录过程中创建用户登录时,您可以创建用户会话。

$setSession_data = array(
    'username' => $username,
    'age'       => $age     
);

$this->session->set_userdata('your_session_name', $setSession_data); 

这就是你如何检索会话数据。

$session_data = $this->session->userdata('your_session_name');
print_r($session_data);
echo $session_data['username'];
echo $session_data['age'];

有关详细信息,请参阅此Helper link

答案 2 :(得分:0)

确保自动加载会话库。 首先检查你得到的内容。

<input class="form-control" type="text" readonly ng-model="pageContent._id" />


检查您的查询实际执行的内容。

$this->session->userdata('variable name');

最后查看你的$ row变量

 $this->db->last_query();

答案 3 :(得分:0)

您是否在从数据库获取数据时尝试过其他年龄值?您的视图上未打印年龄的原因可能是数据库中没有返回数据。 您需要 - 我们需要 - 查看针对数据库执行的查询。所以,

$this->db->last_query();

你在哪里获得设置会话变量'username'的价值?