Codeigniter возвращает имя пользователя на основе идентификатора - PullRequest
1 голос
/ 24 июля 2011

Я создал помощника для возврата имени пользователя, если известен уникальный идентификатор пользователя.

if ( ! function_exists('get_username'))
{
    function get_username($user_id)
    {
        $ci=& get_instance();
        $ci->load->database(); 

        if (empty($user_id))
        {
            return FALSE;
        }

        $ci->db->select('username');
        $ci->db->where('id', $user_id);
        $ci->db->where('activated', 1);
        $ci->db->where('banned', 0);
        $ci->db->limit(1);
        $query = $ci->db->get('users');

        if ($query->num_rows() > 0) //if user exists
        {
            $row = $query->row();
            return $row->username;
        }
        else
        {
            return FALSE;
        }
    }
}

Это работает, на мой взгляд, если, например, я пытаюсь:

echo get_username($this->uri->segment(3)); //uri segment 3 is a user id. 

Однако хочу отправить имя пользователя на мой взгляд через контроллер.Я попробовал следующее в моем контроллере:

function write_message($user_id = '') //function parameter is 3rd uri segment
{
    $data['username'] = get_username($user_id);
    $this->load->view('my_view', $data);
}

Тогда, на мой взгляд, у меня есть

echo $username, который отображает array вместо имени пользователя.Что я тут не так делаю?

Ответы [ 2 ]

1 голос
/ 24 июля 2011

Ваши критерии должны быть ясны, и имя пользователя должно быть уникальным, я думаю, так что ...

if ($query->num_rows() == 1) //if user exists, and unique
{
    $res = $query->result_array();
    return $res[0]['username'];
}
else
{
    return FALSE;
}
0 голосов
/ 25 июля 2011

При использовании print_r($username) в моем представлении (как предложил Альфонсо) было легко обнаружить проблему, так как в моем представлении было идентичное имя переменной, которое было другим массивом.Правильный ответ отправляется любому, кто дает хорошее предложение / предложение для моего помощника или Альфонсо, если он отправляет свой пост в качестве ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...