首页 文章

CodeIgniter视图中的未定义变量

提问于
浏览
6

我正在尝试在CodeIgniter视图中打印我的键/值对数据 . 但是,我收到以下错误 . 我做错了什么?

遇到PHP错误严重性:通知消息:未定义变量:data文件名:views / search_page2.php行号:8

application/controller/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);
// ...

application/views/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 . '
'; ?></h2> <?php endforeach ?> </body> </html>

2 回答

  • 4

    在视图中可以访问数据数组

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

    否则只有名称作为键的变量才能在视图中使用,而不是我们传递的数据变量 .

    更新:

    这是对你对胡安答案的评论的回应实际上,如果你正在努力让它以另一种方式工作 .

    控制器代码与您发布的代码没有任何变化 .

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

    但在视图代码中你需要做的 .

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

    而不是foreach循环,因为$ data中的键已经作为视图中的各个命名变量可用 .

  • 3

    要在模板中使用的变量是

    $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);
    

相关问题