【问题标题】:codeigniter has foreach errorcodeigniter 有 foreach 错误
【发布时间】:2017-07-25 07:28:06
【问题描述】:

嘿,我正在使用 codeigniter,我得到了这个错误

遇到了 PHP 错误

严重性:通知

消息:未定义变量:幻灯片

文件名:daxili/slider.php

行号:3

回溯:

文件:D:\OpenServer\domains\vtgroup\application\views\daxili\slider.php

行:3 函数:_error_handler

控制者:

public function index() {
    $data['slide'] = $this->slide->get_slide();
    $this->load->view('daxili/slider', $data);
}

查看:

<?php foreach($slide as $key => $val) : ?>                  
    <div class="sl-slide" data-orientation="horizontal" data-slice1-rotation="10" data-slice2-rotation="-15" data-slice1-scale="1.5" data-slice2-scale="1.5">
        <div class="sl-slide-inner">
            <img class="bg-img wow fadeInUp" src="<?php echo site_url(); ?>assets/img/slides/<?php echo $val['slide_image']; ?>">
        </div>
    </div>
<?php endforeach; ?>

型号:

public function get_slide(){
    $query = $this->db->get('slide');
    return $query->result_array();
}

【问题讨论】:

  • get_slide 方法的输出是什么?
  • 控制器:public function index() { $data['slide'] = $this->slide->get_slide(); $this->load->view('daxili/slider', $data); }
  • 我的意思是输出数组,检查它是否是一个有效的数组
  • Array ( [slide] => Array ( [0] => Array ( [id] => 1 [title] => birinci [slide_image] => 1.jpg ) [1] =>数组 ( [id] => 2 [title] => ikinci [slide_image] => 2.jpg ) ) )
  • 类幻灯片扩展 CI_Controller { public function index() { $data['slide'] = $this->slide->get_slide(); print_r(($data)); }

标签: php codeigniter foreach


【解决方案1】:

你能发布整个模型和控制器类吗?看起来您的 get_slide() 调用确实返回了 undefined 的内容 - 可能没有建立数据库连接或模型没有加载到您的控制器中。

你也可以在你的模型类中检查$this-&gt;db-&gt;error();以防万一。

更新 2:您将模型自动加载为 slide。 CodeIgniter 是否可能不会将 $data['slide'] 提取到全局变量中,因为它与自动加载的标识符发生冲突?

尝试在控制器中将其重命名为$data['slideArray'] 并在视图中执行foreach($slideArray as $key =&gt; $val)

【讨论】:

  • 这是模型 (autoload {'slide_model' => 'slide'}): db->get('slide');返回 $query->result_array(); } } 和控制器: slide->get_slide(); $this->load->view('daxili/slider', $data); } }
  • 模型正在自动加载。因为控制器很有用。只有视图是无用的:
  • Array ( [slide] => Array ( [0] => Array ( [id] => 1 [title] => birinci [slide_image] => 1.jpg ) [1] =>数组 ( [id] => 2 [title] => ikinci [slide_image] => 2.jpg ) ) 类幻灯片扩展 CI_Controller { public function index() { $data['slide'] = $this->slide- >get_slide(); print_r(($data)); }
  • 如果您在控制器中设置 $data['test']='Test String'; 然后在 foreach 上方的视图中回显它会发生什么?
  • 这不起作用。 $this->load->view('daxili/slider', $data);
猜你喜欢
  • 2013-11-09
  • 2019-01-14
  • 2011-04-23
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多