2

セッションデータにユーザーの名前と名前を保存していて、それをビューにエコーアウトして、ユーザーが誰としてログインしているかを確認できるようにします。データを渡すことができないようです。これは簡単なことだと思いますが、私はCIとMVC全体にかなり慣れていません。

コントローラーコード:

public function index() {
    if($this->session->userdata('admin_signed_in')){
    $this->load->model('dashboard_model');
    $data['userdata'] = $this->session->userdata;
    $data['main_content'] = 'dashboard/dashboard';  
    $this->load->view('common/template', $data);
    } else {
    redirect('signin');
    }

}

コードを表示:

<?php echo $userdata('first_name') ?>  <?php echo $userdata('last_name') ?>

Rの結果を印刷する:

Array ( [session_id] => 69db0f9ccbfde96d92cc09837067438c [ip_address] => ::1 [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0 [last_activity] => 1352998508 [user_data] => [0] => Array ( [admin_id] => 10 [first_name] => Richard [last_name] => Coy [admin_role] => 1 ) [admin_signed_in] => 1 ) 
4

2 に答える 2

7

コントローラーコード:

public function index() {

    ...
    $data['first_name'] = $this->session->userdata('first_name');
    ...
}

コードを表示:

<?= $first_name; ?>

または、現在のようにデータを渡したい場合は、ビューデータのuserdataに関数ではなく配列としてアクセスします。つまり、次のようになります。

<?= $userdata['first_name'];?>
于 2012-11-15T16:35:02.407 に答える
1

コメントで述べたように、配列に値を割り当て$dataてCodeigniterビューローダーに渡すと、データは配列インデックスと同じ変数名でビューパーツで利用できるようになります。
たとえば、これを行う場合:

$data['name'] = "bla bla";
$this->load->view('some_view', $data);  

次に、$nameビューの変数に渡された値が含まれます。あなたの場合、配列をに割り当てています$data['userdata']。したがって、$userdataビュー内のも配列になります。

だからこのようにしてください:

echo $userdata['firstname'];
echo $userdata['lastname'];  

ビュー部分で。

于 2012-11-15T16:45:11.530 に答える