0


周りのトピックを調べましたが、私の場合は何も見つかりませんでした。
したがって、メソッドで満たされたコントローラーと、この特定のコントローラーで一般的に使用するモデルをロードするコンストラクターがあります。すべて正常に動作します。次のようにコンストラクターで配列を設定する必要がありました

$data["content"]["something"] = "bla bla";

それで全部です。だから私は $data["content"] をビューローダーに渡し、アクセスできることを期待しています

$something

、しかしいいえ。未定義変数として受け取りますが、なぜですか?特定のメソッドに入れるとすべて正常に動作しますが、コンストラクターに入れると未定義と表示されます。何か案は?ありがとうございました!:)

4

4 に答える 4

0
  $data["content"]["something"] = "bla bla";
  $this->load->view('path/to/view', $data);

Retrieve it like these in view

   echo $content["something"];
于 2015-08-21T07:18:17.263 に答える
0

View でコンストラクター変数にアクセスすることはできません。それをコントローラーのメソッドに渡し、それをビューに渡す必要があります。例えば、

コンストラクターで:

$data["content"]["something"] = "bla bla";

コントローラーのメソッドで:

$data['something'] = $this->$data["content"]["something"];

$dataこれで、次のようにビューとアクセスに渡すことができますecho $something

于 2013-04-05T08:03:03.607 に答える
0

この問題に関する変数のスコープを理解していないようです。ローカル変数 $data を作成する代わりに、オブジェクト全体 (コントローラー) で利用できる $this->data を使用してみてください

function __construct() {
    ...
    $this->data['content'] = array('test' => 'test');
    ...
}

また、変数 $this->data を使用してそれをビューに渡し、実行中にいつでも追加/変更することもできます。

$this->load->view('path/to/view', $this->data);
于 2013-04-05T08:15:05.813 に答える
-1

あなたがしなければなりません:

$data["content"] = "bla bla";
$data["something"] = "bla bla";

$this->load->view('path/to/view', $data);

そうすれば、ビューにすべてのデータ文字列が含まれます。

<?php echo $something; ?>

<?php echo $content; ?>

1 つの $data 文字列で 2 つの変数を渡すことはお勧めできません。

于 2013-04-05T08:00:28.857 に答える