我正在开发CodeIgniter和MySQL中的应用程序。该应用包括用户个人资料;我正在使用Tank Auth注册和验证用户。
我已经设置了几个用户,现在想要查看每个用户的个人资料。我需要知道:
1 - 如何将自定义会话数据添加到Tank Auth 。我知道代码应该是什么样子(http://codeigniter.com/user_guide/libraries/sessions.html),但我不确定代码应该在auth控制器中的位置,这是相当广泛的 - {{3 }}
2 - 如何将用户数据传递到视图。我已经设置了一个函数来检索用户数据(见下文)并希望将其传递给我的个人资料视图 - 我认为userdata(在代码中)将代表自定义会话数据,其中包括用户的id和用户名,其中一个我需要的URL。
3 - 网址我希望网址如下所示:https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php或http://example.com/users/3394。我知道我需要对CI URI路由做一些事情,但我不确定如何将它与我从查询中得到的结果联系起来。
以下是用户控制器{
的代码function index()
{
$id = $this->tank_auth->is_logged_in('id');
$this->db->where('id', $id);
$q = $this->db->get('user');
$data['userdata']=$q;
$this->load->view('user_view', $data);
}
}
答案 0 :(得分:5)
我猜Runar已经为你回答了#2和#3。 对于#1,打开application / libraries / Tank_auth.php和函数名称login。您将看到以下代码行:
$this->ci->session->set_userdata(array(
'user_id' => $user->id,
'username' => $user->username,
'status' => ($user->activated == 1) ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED,
));
set_userdata设置会话。您可以在此处添加更多要在会话中设置的变量。
答案 1 :(得分:2)
我不熟悉Tank Auth,但我建议你查看Tank {0}来获取Tank Auth。也许你会从阅读有关图书馆的内容中获得更好的理解。 official page一个教程,演示如何使用CodeIgniter设置Tank Auth。
通过查看您的代码,从用户控制器,我看到您正在以正确的方式传递数据。您将它作为数组传递到视图中。在您的视图中,数组元素将作为变量提供。因此,要在视图中使用数据,只需使用变量$userdata
即可。如果您想添加更多数据以包含在视图中,只需在$data
数组中添加另一个元素即可!
如果您创建名为users
的控制器,则可以在www.example.com/users
处找到它。然后,您可以修改index
功能,以包含一个参数$uid
,该参数将生成您想要的网址:www.example.com/users/3394
。
关于#3的例子:
假设您已创建users
控制器。这将是你的index()函数:
function index($userid) {
// You should probably have a model here that retrieves information
// about the user based on the userid
$data['user'] = $this->User_model->getUserInformation($userid);
$this->load->view('users', $data);
}
这是设置索引功能的一种方法。 $userid
变量由网址www.example.com/users/ 1234 定义。这就是url在codeigniter中工作的方式。您可以阅读更多相关信息Here's。