0

JqueryMobileを使用してHTMLモバイルアプリを構築しています。これまでのところ驚くべきことです。

ただし、動的テンプレートを作成する際に、ちょっとした問題に遭遇しました。

これが私のコントローラーです:

function index()
{
        $data['page'] = "home";
        $page['head'] = $this->load->view('template/head',$data,TRUE);
        $page['header'] = $this->load->view('template/header', $data, TRUE);
        $page['footer'] = $this->load->view('template/footer', $data, TRUE);
        $page['nav'] = $this->nav($data['page']);
        $this->load->view("pages/home", $page);
}

function nav($page)
{
        $data['page'] = $page;
        $page['header'] = $this->load->view('template/header', $data, TRUE);
        $page['footer'] = $this->load->view('template/footer', $data, TRUE);
        return $this->load->view('template/nav',$page,TRUE);
}

なぜこのように設定したのかに関わらずfunction nav($page)、ビュー内でエラーが返さUndefined variable: headerれ、Undefined variable: footerエラーが発生する理由は何ですか?

4

1 に答える 1

3

これは、文字列ベースの変数を配列インデックスで上書きしようとしているためです。メソッドに渡していますが、ビューに渡すために$page呼び出される配列を作成しようとしています。$pageビューに渡すには、配列の名前を変更する必要があります。

function nav($page)
{
    $data['page'] = $page;

    // you should rename the array to pass to the view (from $page to $my_page)
    $my_page['header'] = $this->load->view('template/header', $data, TRUE);
    $my_page['footer'] = $this->load->view('template/footer', $data, TRUE);
    return $this->load->view('template/nav',$my_page,TRUE);
}
于 2013-01-31T19:25:22.987 に答える