2012-01-08 38 views
4

我正在开发CodeIgniter和MySQL中的应用程序。该应用包含用户配置文件;我正在使用Tank Auth来注册和验证用户。会话数据,CodeIgniter中的显示配置文件URL(使用Tank Auth)

我已经设置了几个用户,现在想要查看每个用户的配置文件。我需要知道:

1 - 如何将自定义会话数据添加到Tank Auth。我对代码的外观有了一个了解(http://codeigniter.com/user_guide/libraries/sessions.html),但我不确定代码应该放在auth控制器中的哪个位置,这是相当广泛的 - https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php

2 - 如何将用户数据传递到视图。我已经设置了一个函数来检索用户数据(见下文),并希望将其传递给我的个人资料视图 - 我认为userdata(在代码中)将代表自定义会话数据,其中将包括用户的ID和用户名,其中我需要的URL之一。

3 - URLs我希望网址看起来像这样:http://example.com/users/3394http://example.com/users/fooy_foo。我知道我需要用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); 
    } 
} 

回答

2
  1. 我不熟悉的坦克验证码,但我建议你检查出official page坦克验证。也许你会从关于图书馆的阅读中得到更好的理解。 Here's这个教程展示了如何使用CodeIgniter设置Tank Auth。

  2. 通过查看您的代码,从用户控制器中,我看到您正在以正确的方式传递数据。你将它作为一个数组传递给视图。在你看来,数组元素将作为一个变量可用。因此,要使用视图中的数据,只需使用变量$userdata。如果您想添加更多数据以包含在视图中,只需将其他元素添加到$data阵列中即可!

  3. 如果您创建名为users的控制器,您将可以在www.example.com/users上找到它。然后,您可以编辑index函数以包含参数$uid,该参数将生成所需的网址:www.example.com/users/3394。在#3

例子:

比方说,你已经创建了users控制器。这将是你的索引()函数:

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/ 定义。这就是urls在codeigniter中工作的方式。你可以阅读更多关于here

+0

感谢您的回复。我检查了Tank Auth文档,无法找到添加自定义会话数据的信息。但你能给我一个#3的例子吗?你将如何包含$ uid参数来获取URL? – chowwy 2012-01-08 04:11:37

+0

我用你的例子更新了我的答案! – 2012-01-08 04:20:10

+0

顺便说一句。我找到了关于如何使用codeigniter设置tank auth的教程。这已经一年了,但可能对你的目的有用。 http://expertnotfound.wordpress.com/2011/01/20/setting-up-tank-auth-2/ – 2012-01-08 04:26:19

5

我猜Runar已经为你回答了#2和#3。 对于#1,打开应用程序/库/ Tank_auth.php和函数名称登录。你会看到这些代码行:

$this->ci->session->set_userdata(array(
             'user_id'  => $user->id, 
             'username'  => $user->username, 
             'status'  => ($user->activated == 1) ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED, 
           )); 

set_userdata设置会话。您可以在此处添加更多要在会话中设置的变量。

+0

谢谢你。我只能接受一个答案,但我为此赞成了你。我正在查看auth控制器,这就是为什么我没有看到它。谢谢!! – chowwy 2012-01-08 19:50:01

+0

很高兴可以帮助:) – Ninja 2012-01-08 20:02:40

相关问题