0

ユーザーがログインすると、自分のlog in機能に誘導されます -- これが私の部分的に機能するコードです。助けが必要な部分をコメントアウトしました。

モデル

    if ($query->num_rows() == 1)
    { 
        return $query->row()->f_name;
    }   
        
    else {
        return false;
    }

}

コントローラ

    if($this->form_validation->run()) {
    $f_name = $this->model_users->can_log_in();
        $data = array(
            'email' => $this->input->post('email'),
            'is_logged_in' => 1,
            'name' => $f_name
            );
            
        $this->session->set_userdata($data);
        
        redirect('account_dashboard');  

ユーザーの名前は、電子メール/パスワードと共にデータベース テーブルにあります。f_nameセッションはグローバル変数であるため、ユーザーを取得してログイン時にセッションに設定したいと考えています。

見る

私のヘッダーは彼らの名前を示しています:

echo $this->session->userdata('name'); 

テーブルから db_values を取得してセッションに渡すにはどうすればよいですか?

4

1 に答える 1

0

を呼び出すと$query->row()、クエリ結果の最初の行がオブジェクトとして返されます。したがって、この場合はf_nameフィールドの下に格納されているユーザーの名を返す必要がある場合は、次のように記述します。

return $query->row()->f_name;

次に、コントローラーで、モデル関数から返された最初の名前を取得します。

$f_name = $this->model_name->model_function_name();
$data = array('email' => $this->input->post('email'),
              'is_logged_in' => 1,
              'name' => $f_name
);

コントローラーでユーザーの名だけが必要な場合は、代わりにモデル関数から行全体を返します。

return $query->row();

row_array()次に、コントローラーで、データベース テーブルのフィールド名に基づいて名前が付けられるプロパティにアクセスすることにより、返されたオブジェクト (または を使用する場合は配列) にアクセスできます。

$user = $this->model_name->model_function_name();
$f_name = $user->f_name; // Get the user's first name
$other = $user->other; // Get some other information

に対しても同じように機能しrow_array()ますが、もちろん、の$user['f_name']代わりに次のようなことを行う必要があります$user->f_name

編集:また、関数を呼び出す前に、モデルがコントローラーによってロードされていることを確認してください。

$this->load->model('model_name');
于 2012-10-03T02:25:55.573 に答える