1

CodeIgniter を使用して Web サイトを開発しています。

コントローラーを宣言しました。このコントローラー クラスにプライベート変数を配列として追加し、この配列にセッション クラスからの情報を入力しました。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin extends CI_Controller{

    public function __construct()
    {
        private $data  = Array('');

        parent::__construct();
        $this->data = Array(
            'nom' => $this->session->userdata('admin_fullname')
        );
    }

一部のメソッドでは、この変数を次のように呼び出す必要があります。

public function dashboard(){
    $this->load->view('admin/header', $data);
    $this->load->view('admin/left_navigation');
    $this->load->view('admin/dashboard');
    $this->load->view('admin/footer');
}

しかし、それは私にこのエラーを与えます:

#PHP エラーが発生しました重大度: 通知メッセージ: 未定義変数: データファイル名: controllers/admin.php 行番号: 73

行番号73は次のとおりです。$this->load->view('admin/header', $data);

4

2 に答える 2

3

関数内でプライベート変数を宣言しています。クラスレベルに移動し、構造または関数内で初期化する必要があります。

したがって、この:

class Admin extends CI_Controller{

  public function __construct()
  {
    private $data  = Array('');

    parent::__construct();
    $this->data = Array(
        'nom' => $this->session->userdata('admin_fullname')
      );
  }  

これに変わります:

class Admin extends CI_Controller{

  private $data;
  public function __construct()
  {
    $this->data  = Array('');

    parent::__construct();
    $this->data = Array(
        'nom' => $this->session->userdata('admin_fullname')
      );
  }  

また、接頭辞を付けてデータ配列にアクセスすることを忘れないでください$this->

于 2013-05-19T18:07:57.620 に答える
1

オブジェクト属性を使用しているため、次のプレフィックスを付ける必要があります$this

$this->load->view('admin/header', $this->data);

また、コンストラクターではなく、クラススコープで宣言する必要があります。

于 2013-05-19T18:07:53.527 に答える