4

我正在 CodeIgniter 和 MySQL 中开发一个应用程序。该应用程序包括用户资料;我正在使用 Tank Auth 来注册和验证用户。

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

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

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

3 - URL我希望 URL 看起来像这样: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);
    }
}
4

2 回答 2

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 设置会话。您可以在此处添加更多要在会话中设置的变量。

于 2012-01-08T15:42:47.390 回答
2
  1. 我对 Tank Auth 不熟悉,但我建议您查看 Tank Auth 的官方页面。也许你会从阅读图书馆得到更好的理解。这是一个教程,展示了如何使用 CodeIgniter 设置 Tank Auth。

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

  3. 如果您创建一个名为的控制器users,您将能够在www.example.com/users. 然后,您可以编辑您的index函数以包含一个参数,该参数$uid将生成您所需的 url: 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变量由 URL www.example.com/users/1234定义。这就是 url 在 codeigniter 中的工作方式。你可以在这里阅读更多关于它的信息。

于 2012-01-08T03:46:08.850 回答