2017-04-14 4 views
0

セッションにデータを格納することによって、すべてのビューページにログオンしたユーザー名を表示しようとしています。Codeigniter:すべての関数で同じコードを繰り返さずに、すべてのメソッド(またはビューページ)にユーザー名を表示する方法


は、しかし、私は、私は、ユーザーデータを取得していますが、これを行うには他の方法があります ...すべての機能に同じ2つの行を記述する必要があります。私は同じコードを繰り返すとあまりよくないと思うので。

コントローラ

だから、これは私が、データベースからユーザデータを取得するために使用されたモデルを、電子メールを持っていると私の指数関数です。

function index() { 
      $email = $this->session->userdata('email'); 
      $data['details'] = $this->Perfect_mdl->get_login_user_detail($email); 

      $data['items_data'] = $this->Visa_mdl->get_items_name(); 
      $data['title'] = "Hotels"; 
      $this->load->view('include/header',$data); 
      $this->load->view('hotels/visa',$data); 
      $this->load->view('include/footer'); 
     } 

セカンド機能

私は

function visa_dashboard($item_id = NULL) { 
     $email = $this->session->userdata('email'); 
     $data['details'] = $this->Perfect_mdl->get_login_user_detail($email); 

     $data['title'] = "Company Lists"; 
     $result = $this->Visa_mdl->get_items_company_list($item_id); 
     $result1 = $this->Visa_mdl->get_items_name_in_dash($item_id); 
     $data['items'] = $result1; 
     $data['items_company_data'] = $result; 

     $data['items_data'] = $this->Visa_mdl->get_items_name(); 
     // $data['items_company_data'] = $this->Visa_mdl->get_items_company_list($id); 
     $this->load->view('include/header',$data); 
     $this->load->view('hotels/dashboard',$data); 
     $this->load->view('include/footer'); 
    } 

をユーザー名を示すためにしなければならない今、ここで同じこと私はCodeIgniterのに非常に新しいです。これを行う方法 ?

答えて

1

2つの行をコントローラのコンストラクタに入れ、すべてのメソッドで使用できます。

あなたが

$this->load->view('view1',$data['session'])`; 

に表示するためにあなたの方法からその値を渡し、歓迎コントローラの任意の関数に表示する$this->emailなどを使用することができます

<?php 
class Welcome extends CI_Controller { 

    public function __construct() 
    { 
     $this->load->model('perfect_mdl'); 
     $this->email = $this->session->userdata('email'); 
     $this->data['details'] = $this->Perfect_mdl->get_login_user_detail($email); 
    } 
} 
+0

Tpojkaは現在動作中です.. array_merge関数 –

+0

で@ourmandaveの回答を編集しました。疑似 '$ this'を使ってこれらの変数を' $ this-> email'と呼びます。 – Tpojka

0

ヴィシャルは、それはあなたの問題を解決することを願っています。

+0

'<?php $ name = ''; foreach($行としての$詳細){ $ name = $ row-> first_name; } ?> if($ this-> session-> userdata( 'email')){ echo ucfirst($ name); } Shakeelこれは、私はデータベースからデータをフェッチし、ヘッダーに名前を表示しています。 –

+0

私はコントローラからモデルからデータを取得しています。ヘッダーにデータを渡す –

0

ベストソリューションは、セッションに頻繁に必要なデータを保存することです! その後、ユーザークラスを定義していますが、それ

echo login_username(); 
たい場所、それはより多くのサンプル config/autoload

function login_username(){ 
    $CI = &get_instance() 

    $username = $CI->session->userdata('username'); 

    if (!empty($username)) { 
     return $username; 
    }else{ 
     $email = $CI->session->userdata('email'); 
     //here you can load model or run query to get userdata or 
     // username 
     //then set it in session for next time you need 
     $CI->load->model('Perfect_mdl'); 
     $userdata = $CI->Perfect_mdl->get_login_user_detail($email); 
     $CI->session->set_userdata(array('username'=>$userdata['username'])); 

     return $userdata['username']; 
    } 
} 

自動ロードカスタムヘルパーのような関数を定義helper/custom_helper.php でなく、独自のヘルパーを作成し、今ちょうどそれを呼び出す作成します

関連する問題