【发布时间】:2017-05-04 23:02:38
【问题描述】:
我正在尝试通过 for each 循环从数据库中加载照片,以在格式化的 div 中显示每张照片。但是我一直收到未定义的变量结果,我不确定为什么
这是我的视图代码
<?php echo form_open(base_url('index.php/smite/getimages/1/1'));?>
<?php foreach($imgres as $imgdata){?>
<img class="img-box" src="<?php echo base_url("assets/img/".$imgdata['name'].".".$imgdata['type']);?>">
<p style="font-size:140%"><?php echo $imgdata['description']?></p>
<?php }?>
<?php echo form_close();?>
这是控制器代码
class Smite extends CI_Controller {
private $data = "";
private $session_data = array();
public function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library(array('form_validation', 'session'));
$this->load->model(array('users_model','comments_model','images_model'));
}
public function getimages($g1,$g2){
$this->data['imgres'] = $this->images_model->get_images($g1,$g2);
$this->load_page("smite");
}
控制器中还有一个加载页面视图并发送数据的函数
private function load_page($page)
{
$this->data['page'] = $page;
$this->load->view('template/head');
$this->load->view('template/nav',$this->data);
$this->load->view($page."_view",$this->data);
$this->load->view('template/footer');
$this->load->view('template/login_register_modal');
$this->load->view('template/scripts',$this->data);
}
查询运行良好并在 mysql 服务器上测试时返回结果,但我不确定为什么它没有将结果返回到视图。这些是服务器错误消息
遇到了 PHP 错误
严重性:通知
消息:未定义变量:imgres
文件名:views/smite_view.php
行号:28
紧随其后
遇到了 PHP 错误
严重性:警告
消息:为 foreach() 提供的参数无效
文件名:views/smite_view.php
行号:28
【问题讨论】:
-
这可能是如何在控制器中设置变量以便在视图中访问它们的副本? stackoverflow.com/a/9446865/6208463
-
您在哪里加载视图以及如何将数据传递给视图?
-
load_page必须是控制器中的方法。请出示该代码。
标签: php html mysql codeigniter