Tank Auth添加字段

Jef*_*son 2 php codeigniter

我整天都在使用Tank Auth图书馆并对此有疑问.我在注册表单中添加了两个字段:first_name和last_name,我试图找出为什么它不插入user_profiles页面.

使用更新的代码我收到此错误:

遇到PHP错误

严重性:警告

消息:缺少Tank_auth :: create_user()的参数5,在第136行的/home/xtremer/public_html/kowmanager/application/controllers/auth.php中调用并定义

文件名:libraries/Tank_auth.php

行号:162遇到PHP错误

严重性:注意

消息:未定义的属性:Tank_auth :: $ users

文件名:libraries/Tank_auth.php

行号:188

致命错误:在第188行的/home/xtremer/public_html/kowmanager/application/libraries/Tank_auth.php中的非对象上调用成员函数UpdateProfileInfo()

更新的代码:

Auth控制器

Tank Auth图书馆

用户模型

我现在做错了什么想法?

我会给这个50点奖励,但我无法得到这个链接,以便有一个赏金.

Ben*_*Ben 8

你应该做的是把你想要的两列放在user_profiles表中,然后添加一个函数,models/tank_auth/users.php如:

function UpdateProfileInfo ($userID, $firstname, $lastname)
{
    return $this->db->update('user_profiles', array('firstname'=>$firstname, 'lastname'=>$lastname), array('user_id' => $userID)); 
}
Run Code Online (Sandbox Code Playgroud)

然后替换(in /libraries/Tank_auth.php)
function create_user($username, $email, $password, $email_activation)
With
function create_user($username, $email, $password, $email_activation, $userInfo)

然后在(下/libraries/Tank_auth.php)
if (!is_null($res = $this->ci->users->create_user($data, !$email_activation))) { 添加
$this->users->UpdateProfileInfo($userInfo["firstname"],$userInfo["lastname"]);

然后替换(in /controllers/auth.php)

        if ($this->form_validation->run()) {                                // validation ok
            if (!is_null($data = $this->tank_auth->create_user(
                    $use_username ? $this->form_validation->set_value('username') : '',
                    $this->form_validation->set_value('email'),
                    $this->form_validation->set_value('password'),
                    $email_activation))) {                                  // success
Run Code Online (Sandbox Code Playgroud)

有:

$userInfo["firstname"] = $this->form_validation->set_value("firstname");
$userInfo["lastname"]  = $this->form_validation->set_value("lastname");

if ($this->form_validation->run()) {                                // validation ok
    if (!is_null($data = $this->tank_auth->create_user(
            $use_username ? $this->form_validation->set_value('username') : '',
            $this->form_validation->set_value('email'),
            $this->form_validation->set_value('password'),
            $email_activation, $userInfo))) {                                   // success
Run Code Online (Sandbox Code Playgroud)

这虽然它应该工作没有测试,告诉我它是如何
最大化

  • 我确实熟悉这个库,我知道有一个createprofile函数.我建议将它放在一个不同的函数中,这样如果用户更改了它们的信息你就可以重复使用它(比如你在这个函数中也包含了城市/州信息). (2认同)