ユーザーの固有IDがわかっている場合、ユーザーのユーザー名を返すためのヘルパーを作成しました。CodeigniterはIDに基づいてユーザー名を返します
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);
}
は、次に私の見解で私の代わりに、ユーザー名の
array
をエコー
echo $username
を持っている:私は私のコントローラで、次の試してみました。私はここで間違って何をしていますか?問題を見つけるのは簡単だった(アルフォンソにより示唆されるように)私の見解で<pre>print_r($username)</pre>
を使用する際
if ($query->num_rows() == 1) //if user exists, and unique
{
$res = $query->result_array();
return $res[0]['username'];
}
else
{
return FALSE;
}
ビューに「
」の出力はありますか? –大きな質問!どうやら私は、同じ変数名で入力用の配列をエコーしていた... – CyberJunkie