7

CodeIgniter ビューにデータのキーと値のペアを出力しようとしています。ただし、次のエラーが発生します。私は何を間違っていますか?

PHP エラーが発生しました

重大度: 通知

メッセージ: 未定義の変数: データ

ファイル名: views/search_page2.php

ライン番号: 8

アプリケーション/コントローラー/search.php

// ...
        $this->load->library('/twitter/TwitterAPIExchange', $settings);
        $url = 'https://api.twitter.com/1.1/followers/ids.json';
        $getfield = '?username=johndoe';
        $requestMethod = 'GET';     
        $twitter = new TwitterAPIExchange($settings);

        $data['url'] = $url;
        $data['getfield'] = $getfield;
        $data['requestMethod'] = $requestMethod;        

        $this->load->view('search_page2', $data);
// ...

アプリケーション/ビュー/search_page2.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Twitter Test</title> 
</head>
<body>
<?php print_r($data); ?>

<?php foreach ($data as $key => $value): ?>
    <h2><?php echo $key . ' ' . $value . '<br />'; ?></h2>
<?php endforeach ?>
</body>
</html>
4

2 に答える 2

5

ビューでアクセス可能なデータ配列を取得するには、次のようにします

    $data['url'] = $url;
    $data['getfield'] = $getfield;
    $data['requestMethod'] = $requestMethod;        
    
    $data['data'] = $data;
    $this->load->view('search_page2', $data);

それ以外の場合、渡すデータ変数ではなく、キーとして名前を持つ変数のみがビューで使用可能になります。

アップデート:

これは、juanの回答に対するあなたのコメントへの回答です。実際に、提案された別の方法で機能させようとしている場合。

コントローラーのコードは、投稿したコードから変更されません。

    $data['url'] = $url;
    $data['getfield'] = $getfield;
    $data['requestMethod'] = $requestMethod;
    $this->load->view('search_page2', $data);

ただし、ビューコードでは、行う必要があります。

 <h2>url <?PHP echo $url; ?><br /></h2>
 <h2>getfield <?PHP echo $getfield; ?><br /></h2>
 <h2>requestMethod <?PHP echo $requestMethod; ?><br /></h2>

$data のキーは、ビュー内のそれぞれの名前付き変数として既に利用可能であるため、 foreach ループの代わりに。

于 2013-05-11T19:06:47.790 に答える
4

テンプレートで使用する変数は次のとおりです。

 $url, $getfield, $requestMethod

$dataビューに渡され、直接アクセスできない変数のコンテナです

$dataビューにアクセスする必要がある場合は、別のラッパー オブジェクトを使用してください

 $container  = array();
 $container  ['url'] = $url;
 $container  ['getfield'] = $getfield;
 $container  ['requestMethod'] = $requestMethod;
 $container  ['data'] = $data;
 $this->load->view('search_page2', $container);
于 2013-05-11T19:04:33.193 に答える